ch10_异常处理
参考学习源码:github源码_异常处理
1、异常捕获时,一定要记住先捕获小异常,再捕获大异常。
2、Java7提供多异常捕获,多异常捕获时,异常变量有隐式的final修饰,因此程序不能对异常变量重新赋值。
3、使用finally回收资源。Java的垃圾回收机制不会回收任何物理资源,垃圾回收机制只能回收堆内存中对象所占用的内存。
4、为了保证try语句可以正常关闭资源,这些资源实现类必须实现AutoCloseable或Closeable接口,实现这两个接口就必须实现close方法。
5、自行抛出Runtime异常比自行抛出Checked异常的灵活性更好。同样,抛出Checked异常则可以让编译器提醒程序员必须处理该异常。
6、用户自定义异常都应该继承Exception基类,如果希望自定义Runtime异常,则应该继承RuntimeException基类。
7、在合适的层处理异常。如果当前层不清楚如何处理异常,就不要在当前层使用catch语句来捕获该异常,直接使用throws声明抛出该异常,让上层调用者来负责处理该异常。