运行时异常不需要预处理,通过规范的代码可以避免
受检异常必须预处理,否则编译报错,有两种预处理方式
1)捕获处理
2)抛出处理
下面是异常捕获处理的语句
try{
对可能产生异常的代码进行监视
如果try代码块的某条语句产生了异常,就立即跳转到catch子句执行,代码块后面的代码不再执行
try代码块可能会有多个受检异常需要预处理,可以对多个catch子句分别捕获
}
catch( 异常类型1 e1){
捕获异常类型1的异常,进行处理
在开发阶段,一般的处理方法要么获得异常信息,要么打印异常栈跟踪信息
e1.printStackTrace();
在部署后,如果有异常,一般把异常信息打印到日志文件中
}catch( 异常处理2 e2){
捕获异常类型2的异常,进行处理
如果捕获的异常类型有继承关系,应该先捕获子异常再捕获父异常;如果没有继承关系,catch子句没有先后关系
}
finally{
不管是否产生了异常,finally子句总是会执行
一般情况下,会在finally子句中释放系统资源
}