标签:blog http ar 使用 sp art 问题 log bs
当finall块中包含return语句时,Eclipse会给出警告“finally block does not complete normally”,原因分析如下:
1、不管try块、catch块中是否有return语句,finally块都会执行。
2、finally块中的return语句会覆盖前面的return语句(try块、catch块中的return语句),所以如果finally块中有return语句,Eclipse编译器会报警告“finally block does not complete normally”。
3、如果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
finally块的问题(finally block does not complete normally) (转)
标签:blog http ar 使用 sp art 问题 log bs
原文地址:http://www.cnblogs.com/softidea/p/4106490.html