Java7的Supressed异常:
Supressed异常可以解决catch代码块捕获异常且出发另一个异常的情况下,finally捕获且重抛了后者而忽略了原本的异常的问题。
Supressed异常的新特性允许将一个异常附于另一个异常之上,因此,抛出的异常可以附带多个异常的信息。
try-with-resource语法糖:
在字节码层面使用Supress异常,精简资源打开关闭的用法,同时避免原异常“被消失”。
具体做法是:在try关键字后声明并实例化实现了AutoCloseable接口的类,编译器将自动添加对应的close()操作。
小例子点这里
需要注意的地方,java中的异常分为检查异常(需要try-catch手动捕获或在方法中向上抛出的异常)和非检查异常(错误和不需要手动捕获的异常)

上图中IOException分支的异常是检查异常,其它分支是非检查异常。
通过throw抛出异常时,检查异常需要在方法名后通过throws
关键字声明该异常,向上抛出,而非检查异常则不需要通过throws
关键字声明,例子看下图:

随学随更(ง •_•)ง
网友评论