try{
//正常业务
}catch(异常1 e1){ //0-n个catch块
//处理异常1
}catch(异常2 e2){
//处理异常2
}finally{ 0-1个finally块 【catch和finally至少有一个】
//通常用于回收资源
}
JDK7提供新功能:多异常捕捉
try{
//正常业务
}catch(异常1 | 异常2 e1){
//处理异常1,2
}catch(异常3 e3){
//处理异常3
}finally{ 0-1个finally块 【catch和finally至少有一个】
}
【异常处理可以嵌套】
catch和finally里都可以嵌套try-catch-finally
异常处理机制:
1、try块出现异常时,系统生成一个异常类对象
2、异常比较catch的异常对象instanceof()返回true就执行catch块代码,将系统生成的异常类对象传给catch做形参
【异常对象的方法】--getMessage() 异常信息
--printStackTrace()异常的跟踪栈,程序排错时从“第一个”出错的位置进行修改
3、一个异常只能被一个cathc块捕捉
4、多个catch块捕捉异常,应该先捕捉小异常(子类异常)再捕捉大异常(父类)
5、finally总是会执行,不管是否发生异常,若try块有return,先执行finally块再执行try块的return,return结果不变,如果finally块里有return,则由finally的return结束方法