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 に答える