您的位置:首页 > 其它

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

2016-03-08 00:00 477 查看
一般人都会回答在return之前执行,但是更详细的我觉得应该是在return中执行的。

例如:

public class Test {

public static void main(String[] args) {

System.out.println(new Test().test());

}

static int test()

{

int x = 1;

try

{

return x=4;

}

finally

{

System.out.println(finally+x);

}

}

}

结果:

finally4

4

我的理解是,当try运行到return后,就会执行后面的x=4赋值语句,注意只是单纯的赋值并没有return,

然后在执行finally中的东西System.out.println(finally+x);然后打出一行“finally4”,

finally执行完了后才执行return,返回值,然后mian函数中通过

System.out.println(new Test().test());

这句话打印出“4”来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: