IDE 提示 'finally' block can not complete normally的问题

首先声明这确实是一个比较低级的问题,原因在于对finally块的理解不够。

当你在finally块中使用了return 语句时,
IDEA 会提示

‘finally’ block can not complete normally

Eclipse会提示

finally block does not complete normally

  1. 首先要明确的是,无论你之前的try块还是catch块中是否含有return 语句,finally块都会执行。
  2. 其次如果finally 块中也有return语句的话,那么之前的try 块和catch 块中的return语句会被覆盖掉,也就是不会执行,这也是IDE报提示警告的主要原因。
  3. 如果finally块中包含了return语句,即使前面的catch块重新抛出了异常,则调用该方法的语句也不会获得catch块重新抛出的异常,而是会得到finally块的返回值,并且不会捕获异常。

因此,我们应当避免在finally块中包含return语句。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值