33

return;try ブロックに存在する場合、try-finally の実行について混乱しています。私の理解では、finally ブロックは常に実行されます。つまり、呼び出し元のメソッドに戻る前です。次の単純なコードを検討している間:

public class TryCatchTest {
    public static void main(String[] args){
        System.out.println(test());
    }
    static int test(){
        int x = 1;
        try{
            return x;
        }
        finally{
            x = x + 1;
        }
    }
}

出力された結果は実際には 1 です。これは、finally ブロックが実行されていないことを意味しますか? 誰でも私を助けることができますか?

4

3 に答える 3