閱讀381 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go Core Data淺談係列之五 : 在UITableView中展示
  下一篇:go 開源框架Core Plot的使用