1.异常体系
Throwable
|--Error
|--Exception
2.异常分类
(1)严重异常Error,处理不了
(2)Exception
3.Exception分类
(1)运行时异常RuntimeException (运行时检查)
(2)非运行时异常 (编译期就检查)
运行时异常RuntimeException就是程序员可以解决的,比如数组越界异常,运行时异常,不是用户的责任,是程序员的责任,可以进行修改的。希望程序停止掉,处理掉,因为如果用户看见并不会处理。所以一般不用try-catch或者抛出。运行时期才会进行检查。
非运行时异常,是用户那边出现问题导致的,比如断电了,断网了,这个写的时候程序应该继续走,给用户友好的界面提示,所以这就是try-catch的好处,他会使程序继续执行。编译期见就会进行检查。
非运行时异常处理方式:(1)try-catch-finally(2)声明throws
4.finally
一定会执行的。
典型例题:
try{
}catch{
return 2;
}finally{
return 3;
}
运行的结果是3
return就是往函数栈中放数据,finally是一定会执行的。