最后总是在Java中执行吗?

问题:

我有一个try / catch块,里面有return。最后的块是否会被调用?
例如:

try {  
    something();  
    return success;  
}  
catch (Exception e) {   
    return failure;  
}  
finally {  
    System.out.println("i don't know if this will get printed out.");
}

我知道我可以在看到发生什么(这是我要做的事情,实际上),但是当我googled的答案没有出现,所以我想我会把它作为一个问题。

回答:

是的,finally将被调用。
唯一的时候finally不会被调用:

  1. 如果你调用System.exit();
  2. 如果JVM首先崩溃;
  3. 如果try块中存在无限循环(或其他不可中断,非终止语句)
  4. 如果电源关闭。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Does finally always execute in Java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 2 =