Will the statements inside finally get executed if they are following return?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
In Java, does return trump finally?
号
想知道如果finally语句在return语句之后是否仍将被执行?
是的,唯一的例外是Try块中的
是的,最终会被执行,即使你
1 2 3 4 5 6 7 8 9 10 11 |
输出:
1 | Finally.. |
号
如果返回语句在其关联的try块之前,则不是。
如果返回语句在关联的try块中,则返回。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public void foo(int x) { if (x < 0) return; // finally block won't be executed for negative values System.out.println("This message is never printed for negative input values"); try { System.out.println("Do something here"); return; } finally { System.out.println("This message is always printed as long as input is >= 0"); } } |
除其他答案外,如果finally块中有返回,则返回后的语句将不会执行。
1 2 3 4 5 6 7 |
。
在上面的代码片段中,"in finally"显示,而"won't get printed"不显示。
最后,只有当我们通过调用
是的,当然。finally语句设计为在任何情况下都可以执行,前提是执行将进入try语句。
是的,最终将在