本文包含以下知识点:
- try里有return,finally还执行么?那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后
- 如果执行finally代码块之前方法返回了结果,或者JVM退出了,finally块中的代码还会执行吗
- 在什么情况下,finally语句不会执行
一、try里有return,finally怎么执行
1.finally块里的代码是在return之前执行的。
在异常处理中,无论是执行try还是catch,finally{}中的代码都会执行(除非特殊情况)。由于程序执行return就意味着结束对当前函数的调用并跳出这个函数体,因此任何语句要执行都只能在return前执行。
1 | public class Test { |
运行结果:
1 | execute finally |