try AutoClossable catch finally return 顺序测试

版权声明:本文为博主hecb原创文章,未经博主允许不得转载。 https://blog.csdn.net/blvyoucan/article/details/79551052
public class TestClose  implements AutoCloseable{


    public int test(){
        int x = 1;
        try{
            x += 1;
            return x + 7;
        }catch (Exception e){
        }finally {
            x += 2;
            return x + 3;
        }
    }

    @Override
    public void close() throws Exception {
        System.out.println("close");
    }

}
public class Test{
    public static void main(String[] args ){
        try{
            try(TestClose t = new TestClose()){
                System.out.println( t.test() );
                throw new Exception("");
            }catch (Exception e){
                System.out.println("throw");
                throw e;
            }finally {
                System.out.println("finally");
            }
        }catch (Exception e){
            System.out.println("exception");
        }
    }
}

运行结果

7
close
throw
finally
exception

输出7的顺序应该是try里面的x+1,finally里面的x + 2,然后return x + 3

猜你喜欢

转载自blog.csdn.net/blvyoucan/article/details/79551052