A:在catch里面有return的情况下,finally里面的代码还执行吗?如果执行,请问在return前还是后。 会,在return中间。 B: 请输出下列程序的结果 public class FinallyTest { public static void main(String[] args) { System.out.println(method2()); } private static int method2() { int x = 10; try { System.out.println(x / 0); x = 20; } catch (ArithmeticException e) { x = 30; return x; } finally { x = 40; } return x; } //结果30。 怎么理解呢? 第一次执行到return x;的时候,在内存中已经形成了一个返回路径,这次记录的值:return 30; 接着,finally执行,x=40。 最后,第二次执行return的时候,就直接返回了return 30 |