- finally代码执行
- 在try或者catch代码return之前执行;
- finally职责是清理资源、释放连接、关闭管道流,一般不进行赋值和return;
- 如果finally 有return且return的对象被修改,如果return对象是基本数据类型,没有影响;如果是引用数据类型,有影响;
- 异常分类
- Error 和 Exception 都是 Throwable 子类;
- Error,系统不可控错误,举例:StackOverflowError, OutOfMemoryError;
- Exception,分为受检异常和非受检异常;
- 受检异常,发生在编译阶段,需要在代码中显式处理的异常,比如 SQLException,IOException,ClassNotFoundException;
- 非受检异常,运行时异常:
-- 可预测异常:IndexOutOfBoundsException, NullPointerException,BufferOverflowException, ArithmeticException;
-- 需捕捉异常,发生在运行过程中必须显式处理的异常:TimeoutException;
-- 可忽略异常,框架或者系统产生的并可以自行处理的异常:NoSuchRequestHandlingMethodException