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