本帖最后由 夜空闪亮 于 2013-8-7 00:57 编辑
在Java中当try、finally语句中包含return语句时,执行情况到底是怎样的,现在通过下面的例子加以说明:
第一种情况:try中包含return语句,finally中不包含(见图1):
第二种情况:try,finally中都包含return语句(见图2):
我们将上面的代码稍作改动
结论:1.无论try里边有没有return语句,finally里边的语句一定都会执行。
2.如果finally里边没有return语句,try里边有return,那么会在确定返回值后再去执行finally中的代码,然后才将先前确定的返回值返回;如果finally里边也有return语句,此时finally中的返回值将会覆盖在try里边获取的返回值,所以最终将返回finally中的返回值。而在try------catch------finally语句中特殊的地方就在这里,遇见return语句后函数的执行并不会立即结束,除非用System.exit(0)强制退出程序,程序才会结束,否则就要等finally代码块执行完毕才会退出!
|
-
1.png
(23.13 KB, 下载次数: 8)
-
2.png
(20.4 KB, 下载次数: 5)
|