在try catch finally 中不管try catch 中有没有return 都会执行finally 并且return的值会先执行但是将值保存起来,等finally执行结束返回结果,不管finally是否改变值,返回结果不变。
public static void main(String[] args) {
int b = test();
System.out.println(b);
}
public static int test() {
int x = 1;
try {
return x++;
}catch(Exception e) {
e.printStackTrace();
} finally {
System.out.println("finally:" + x);
++x;
System.out.println("++x:" + x);
}
return x;
}
运行结果:
finally:2
++x:3
1