finally代码段不是必须有的,但是如果有该代码段,必须紧跟在最后一个catch代码段后面,作为异常处理机制的统一出口(做善后处理),例如资源的关闭,无论try中是否产生异常,finally中的代码总在当前方法返回之前无条件执行,因此即使catch中包含return的代码,finally依然会执行,并且是在return语句执行之前执行,但需要注意的是,如果在某个catch代码段中已经执行了要终止程序的System.exit()方法,那么此时finally中的代码不会执行。
finally代码段不是必须有的,但是如果有该代码段,必须紧跟在最后一个catch代码段后面,作为异常处理机制的统一出口(做善后处理),例如资源的关闭,无论try中是否产生异常,finally中的代码总在当前方法返回之前无条件执行,因此即使catch中包含return的代码,finally依然会执行,并且是在return语句执行之前执行,但需要注意的是,如果在某个catch代码段中已经执行了要终止程序的System.exit()方法,那么此时finally中的代码不会执行。