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來表示函數的結束和返回。
原帖地址:https://blog.csdn.net/luckarecs/article/details/7214826
最後更新:2017-04-04 07:03:39