Java异常

Java异常:阻止当前方法或作用域继续执行

  • 异常后会发生:使用new在堆上创建异常对象,当前执行路径被终止,并从当前环境下弹出对异常信息的引用,由异常机制接管程序
  • 所有标准异常类都有两个构造方法,默认和接受字符串
  • 异常声明:属于方法的一部分,紧跟在形式参数类表后面
  • Exception是所有异常类的基类,可以调用它从基类Throwable继承的方法
    • getMessage() getLocalizedMessage() 获取详细信息
    • toString 获取Throwable的简单描述
    • printStackTrace() 打印调用栈轨迹
    • getStackTrace() 返回一个由栈轨迹构成的数组,栈顶元素是调用序列最后一个方法调用
  • 标准异常:Throwable表示可以作为异常被抛出的类
    • Error:表示编译和运行时错误
    • Exception:可以被抛出的基本类型
  • RuntimeException:
    • 属于运行时异常的类型很多,他们会被Java虚拟机抛出,不需要在异常说明中标明,属于不受检查异常
    • 将被自动捕获,如果没有在代码中捕获RuntimeException,异常将会直达main(),并将其输出到System.err
    • 只能在代码中忽略RuntimeException类型的异常,其他异常都是由编译器强制实施的
  • 使用finally进行清理:
    • 当要把除了内存之外的资源恢复到原始状态时,如已经打开的文件或网络连接
    • finally中内容总是会执行,即使在前面先是使用了return
    • 异常丢失:在finally中抛出的异常,将会覆盖前面的异常
      异常的限制:
    • 覆盖的方法,只能抛出那些在基类中说明的异常
    • 对于子类的构造方法,需要包涵基类构造方法的异常,同时可以新增异常
  • 异常匹配:抛出异常时,异常处理程序会按照代码编写顺序查找最近的处理程序,然后就不再查找

Excepetion处理机制

Throwable、Error、Exception

异常面试题

posted @ 2016-04-13 14:23  NewDolphin  阅读(193)  评论(0)    收藏  举报