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