try{
可能发生异常的代码
} catch(可能发生的异常类型 异常对象名称){
当前异常类型的处理方式
} finally{
一定要执行的代码
}
finally:一定要执行的代码
1. 如果把某些代码放在try中可能在执行这些代码之前就出现了异常,那么这些代码就无法执行。
如果把某些代码放在catch中有可能try中没有异常,那么catch中的代码不会执行。
如果把一些代码放在try-catch之后,如有未捕获的异常那这些代码也无法执行
2. finally也是一个代码块,在这代码块中的代码一定会执行,无论try-catch中发生那些其概况。甚至代码中有return,都会先执行finally中的代码。
一般使用关闭资源来用
流程
无return,无异常
try-finally
无return,有异常
try(未出现异常的前半段) - catch - finally
try或catch中有return,无异常
try - finally - return(try)
try或catch中 有return,有异常
try(未出现异常的前半段) - catch - finally - return(catch)
只要是finally中有return的请款下,无论有没有异常或try-catch中有没有return
rey/catch - return(finally)