Java中finally块报finally block does not complete normally

一、出现问题

当finall块中包含return语句时,Eclipse会给出警告"finally block does not complete normally"



二、分析原因
1 finally块中的return语句会覆盖try块、catch块中的return语句
2 如果finally块中包含了return语句,即使前面的catch块重新抛出了异常,则调用该方法的语句也不会获得catch块重新抛出的异常,而是会得到finally块的返回值,并且不会捕获异常


三、结论

finally内部使用 return 语句是一种很不好的习惯,如果try中还有return语句,它会覆盖了try 区域中return语句的返回值,程序的可读性差。面对上述情况,其实更合理的做法是,既不在try block内部中使用return语句,也不在finally内部使用return语句,而应该在 finally 语句之后使用return来表示函数的结束和返回。


原帖地址:http://blog.csdn.net/luckarecs/article/details/7214826


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值