Java 必知必会 第 14 篇
does finally always execute in java
有一个 try/catch 代码块,其中包含一个打印语句。finally代码块总会被执行么?
示例:
try { something(); return success; } catch (Exception e) { return failure; } finally { System.out.println("i don't know if this will get printed out."); }##回答
finally将会被调用。 只有以下情况 finally不会被调用: 当你使用 System.exit()后其他线程干扰了现在运行的线程(通过 interrupt方法)JVM 崩溃( crash )了Answered by Jodonnell, edited by jpaugh.
//示例代码 class Test { public static void main(String args[]) { System.out.println(Test.test()); } public static int test() { try { return 0; } finally { System.out.println("finally trumps return."); } } }输出:
finally trumps return. 0