异常的分类:
java.lang.Throwable是java中所有异常的顶级超类。
它下面包含两个派生类:
- java.lang.Exception:意外、例外,可被修复的错误;
- java.lang.Error:不可恢复错误,程序一旦出现Error就会中止;
Java的异常处理机制时针对Exception的,用于捕获并恢复程序的运行。
异常处理机制中,最常见的两块:
- try语句块和catch语句块;
- try语句块不可单独使用,后面要跟catch或finally语句块;
一、try-catch
可以定义多个catch来处理不同的异常并解决;
Exception e:当捕捉的是一个超类型异常时,凡抛出其任何子类型异常都可以被其处理。
二、finally块
finally块是异常处理机制的最后一块,它可以直接跟在try后面或者最后一个catch后面;
finally块保证:只要程序执行到try语句块中,无论是否出现异常,finally最终都是必定执行的,因此我们会将释放资源这类操作放在这里确保执行。
上述代码实现比较繁琐,所以在JDK7之后,Java推出了自动关闭特性,方便我们在异常处理机制中,可以使用更加精简的代码来完成关闭。(如下图)
注意:
- 自动关闭特性是编译器认可的;
- 只有实现了AutoCloseable接口的类,才能在try后面的()中定义并初始化;
throw