java try块_java – 尝试,最后在try块中返回时执行流程

当尝试时,最后使用组合,如果有一个return语句,请尝试.为什么最后是块执行?

class Palindrome

{

public static void main(String args[])

{

System.out.println(Palindrome.test());

}

public static int test()

{

try {

//return 0;

return 100;

}

finally {

System.out.println("finally trumps return.");

}

}

}

在上面的代码中,请告诉我执行的流程.我知道最终将在try块之后强制执行.但是在try块中,返回staatement会将控件带到主类.在那种情况下,控制将如何最终阻止?

解决方法:

你是什​​么意思“第一”?

最终在执行之前运行离开方法.什么时候应该运行?毕竟,它是该方法的一部分.

但如果你有

int x = 1;

try{

return x;

} finally {

x = x + 1;

}

然后该方法仍将返回1.因此,return语句确实在finally块之前以某种方式执行(以确定返回值).

如果问题是为什么finally块一直被执行,那就是它们的用途:在“try”块完成之后“终于”运行,无论如何.

But in try block, return statement will take the control to main class. In that case how will the control come to finally block?

怎么样?嗯,这就是语言(和运行时)的工作方式.

在将控制流返回给调用方法之前,执行finally块.

它在技术上甚至可以选择更改返回值(通过拥有自己的return语句),但这是非常不鼓励的.

标签:java,return,try-catch,finally

来源: https://codeday.me/bug/20191003/1848090.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值