1. 什么是异常?
在程序运行过程中出现的错误,称为异常。
异常就是程序运行过程中出现了不正常现象导致程序的中断。
2. 异常分类
错误:
运行时异常:
编译时异常:
算数异常
:例如除数为0,数值越界空指针异常
:例如,字符串不存在,例如字符串赋值为null但是去获取字符串长度下标越界异常
:例如,大于数组或字符的大小进行值获取类型转换异常
:例如:类型转换错误
3. 异常处理
系统异常(运行时异常)
不需要预处理,通过规范的代码可以避免产生这种异常。受检异常(编译时异常)
必须预处理,否则编译报错,有两种预处理方式 : 捕获处理、抛出处理。
3.1 try、catch
try{
}catch(OneException e){
}catch(TwoException e){
}
try
中写有可能产生异常的代码try
后面是catch,catch可以有一个或多个,catch中是需要捕获的异常- 当try中的代码出现异常时,出现
异常下面的代码不会执行
,马上会跳转到相应的catch语句块中,如果没有异常不会跳转到catch中 - catch在多个书写时
从上到下
,从小到大
try
无法单独使用
3.2 finally
finally
必须和try一起使用,无法单独使用。finally
每次都在最后执行,不管try有没有捕获finally都执行。- 当catch有return执行时,先执行finally内的代码,然后再执行return。
- 如果finally中有return则直接返回。
3.2.1 finally的失效
System.exit(0);