在网上看到一段代码java
public class Test { public static int tt() { int b = 23; try { System.out.println("yes"); return b += 88; } catch (Exception e) { System.out.println("error: " + e); } finally { if (b > 25) { System.out.println("b>25: " + b); } System.out.println("finally"); } return b; } public static void main(String[] args) { System.out.print("main method: " + tt()); } }
运行结果:app
yes
b>25: 111
finally
main method: 111函数
到这里,有不少人会感到纳闷:return以后函数不就结束了吗?怎么仍是执行finally域内的语句?为了说明这个问题,咱们先谈谈finally关键字。code
关键字finally是try的关键字,通常与try成对出现,意味着不管try块是怎么退出的,finally子句中的代码老是会被执行的。所以,finally被用来执行不管是否有异常老是要运行的事件。事件
通常状况下,return表示了调用方法的结束,但finally是个例外。若是用System.exit()退出程序的话,固然finally就不会执行了。get