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语句。

发布了10 篇原创文章 · 获赞 1 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览