(1)异常:就是程序出现的不正常情况。
(2)异常体系:
Throwable
|--Error 严重的问题,是处理不了的。要改正代码的。
|--Exception
非RuntimeException的,是需要处理的。编译期异常。
|--RuntimeException 不需要处理的,是需要改代码的。运行期异常。
举例:
Error:
地震,海啸。
Exception:
感冒了,头疼。
注意:
每种体系的子类都是以父亲的名称作为后缀。
XxxError
XxxException
(3)java虚拟机的默认处理方式
把异常的类名,原因,位置等信息显示在控制台。
一旦有异常发生,其后的代码不能继续执行。
(4)异常的解决方案:
A:自己处理
基本格式:
try{
可能发生异常的代码;
}catch(异常类名 变量名){
异常的处理代码;
}finally{
释放资源的代码;
}
注意:一旦有一次发生,就会立马执行catch里面的代码。
变形格式:
try...catch
try...catch...catch
try...catch...catch...finally
try...finally
JDK7针对多个catch进行了优化:
catch(异常1 | 异常2 | 异常3 ... 变量){}
注意:这些异常必须是平级关系。
和try...catch...catch的不同点是
JDK7的这种方案是必须平级关系,不能有子父关系。
而try...catch...catch父亲放最后是可以的。
B:抛出处理
用throws关键字在方法上声明(抛出)。
C:到底使用谁?
a:能自己处理的尽量自己处理。(建议用try...catch)
|
|