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

本文详细解析了Java中的try-finally语句执行机制,指出在return之后执行finally块,并且强调了return与finally之间的区别。通过示例代码演示了这种执行流程,有助于理解Java异常处理中的细节。

一般人都会回答在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”来。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生(FS)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值