java中finally代码块总会被执行么?

mac2024-04-13  41

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
最新回复(0)