Java之异常

来源:互联网 发布:linux cp 合并文件夹 编辑:程序博客网 时间:2024/05/29 18:11

1、异常是指Java程序出现的不正常的情况。
2、异常的体系
Throwable:Throwable 类是Java 语言中所有错误或异常的超类。

  • Error :Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。
    • Error子类
  • Exception
    • RuntimeException 运行期异常(除数为零、数组越界等)
      • RuntimeException子类
    • 非RuntimeException 编译期异常(File类抛出的异常),必须处理的,否则程序编译不通过
      • Exception子类

3、异常处理机制

  • JVM的默认处理
    把异常的名称,原因,位置等信息输出在控制台,程序停止执行。
  • 异常处理
    • try…catch…finally:自己编写处理代码,程序可继续执行
    • throws:将异常抛出给调用者

4、异常情况

  • 一个异常的情况
  • 多个异常的情况
    • 平级情况
    • 存在上下级的情况
    • JDK7的新特性及注意事项

5、异常常见问题

  • 编译期异常和运行期异常区别
    编译期异常 必须处理,否则不能编译通过
    运行期异常 可以不处理(JVM),也可以处理
  • throw和throws区别
    throw:在方法体中,抛出一个异常对象
    throws:在方法声明上,后面跟的是异常的类名,可以是多个

6、finally关键字
- finally用于释放资源,它的代码永远会执行。特殊情况:在执行到finally之前jvm退出了
- final,finally,finalize的区别?
- 如果在catch中存在return,请问finally还执行吗?如果执行,在return前还是后(会,return中间执行)
- 异常处理的变形
try…catch…finally
try…catch…
try…catch…catch…
try…catch…catch…fianlly
try…finally

7、自定义异常
继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
8、异常的注意实现
- 父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常
- 父的方法没有异常抛出,子的重写方法不能有异常抛出
- 父的方法抛出多个异常,子的重写方法必须比父少或者小

原创粉丝点击