6

可能重复:
在Java中,最终返回王牌吗?

这个函数返回什么?

public int wasExceptionThrown() {
   try {
     if(1==1)
        throw new RuntimeException();
     return 1;
   } catch(Exception e) {
     return 2;
   } finally {
     return 3;
   }
   return 0;
}
4

2 回答 2

7

如果您调用System.exit(0);,则finally不会调用块,因为线程会立即关闭。在所有其他情况下finally,当块退出时调用(假设确实如此)

于 2013-01-08T16:07:05.353 回答
3

最后叫beforereturn。

唯一不会被调用的情况是调用 System.exit() 或 JVM 先崩溃。

于 2013-01-08T16:10:57.600 回答