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

京公网安备 11010502036488号