Java异常-受查与非受查
所有的异常都是由Throwable继承而来,下级分为Error和Exception
-
Error
Error表示Java运行时系统的内部错误和资源耗尽错误,不应该抛出该类型的错误,只能通知用户,尽力安全关闭程序。
-
Exception
该分支派生出RuntimeException和其他异常(如I/O错误之类)
- 受查与非受查异常
-
非受查异常
派生于Error或RuntimeException类的所有异常
-
受查异常
其他所有的异常称为受查异常
一个方法必须声明所有可能抛出的受查异常,非受查异常要么不可控制(Error),要么就应该避免(RuntimeException)。当方法没有声明所有可能发生的受查异常,编译器会发出一个错误消息。
- try-catch
除了常用的try-catch-finally之外,还有一种带资源的try语句
若资源属于一个实现了AutoCloseable接口的类,该接口有个close方法 void close() throws Exception;
整体的带资源的try语句可写成如下代码:
try(Resource res = ...){
do something;
}
当try语句退出或者发生异常时,会自动调用res.close(),相当于调用了finally