一、关键技术点:
1、关键字finally用在try和catch语句之后,表示无论是否发生异常,都会执行finally块中的代码
2、一般情况下,先执行try块,如果有异常再执行catch块,最后才执行finally块,除非try块或者catch块中有跳转语句,如:return,那么在执行跳转语句之前,finally块中的代码被执行。因此,finally块中的代码一定会被执行。
3、由于finally块中的代码肯定会执行,所以常常将关闭资源(如关闭文件、数据库连接等)的语句放在fianlly中。
4、不要在finally块中用跳转语句,如return等,因为这会使得try和catch块中的跳转语句失效
二、演示实例
程序输出:
源码分析:
着重看testFinallyB方法的输出,在testFinallyB方法中的finally块总使用了跳转语句"return 0"。因为finally块的语句在try和catch中的跳转语句执行之前被执行,在执行finally语句中的跳转语句后,将无法执行try和catch中的跳转语句。所以该方法总是返回0.