2016-04-04 4 views
-5

これまで私が試したコードスニペットは、以下の実験クラスの中にコードです。Javaでtryブロック内にあっても、finallyブロック後に値が返されるのはなぜですか?

public class experiment { 
    public static void main(String args[]) { 
     System.out.println(experiment.myMethod()); 
    } 

    public static int myMethod() { 
     try { 
      System.out.println("block"); 
      return 112; 
     } finally { 
      System.out.println("This is Finally block"); 
      System.out.println("Finally block ran even after return statement"); 
     } 
    } 
} 
+1

'最後に{..}'文は '試し{...}'リリース実行制御の前に実行されなければならないので。それが言語にとってとても基本的なので、私はこれを答えとして置いても悪いと感じました。 – Dave

+0

学生は研究をしてはいけませんか? – Tom

答えて

2

次回はコードを整理してみてください。 Javaドキュメントによると

がついにときtryブロックを終了常に実行ブロック。これにより、予期しない例外が発生してもfinallyブロックが確実に実行されます。しかし、最終的には例外処理だけでなく、のリターン、継続、または壊れたコードで偶発的にバイパスされることを避けることができます。。 finallyブロックにクリーンアップコードを入れることは、たとえ例外が予期されない場合でも、常に良い方法です。

The finally block

関連する問題