finally塊的問題(finally block does not complete normally)
阿新 • • 發佈:2017-08-16
csdn 避免 ips 出了 有理 混淆 你在 return 原因分析
http://blog.csdn.net/chh_jiang/article/details/4557461
當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語句。如果你在前面的語句中包含了return語句或重新拋出了異常,又在finally塊中包含了return語句,說明你概念混淆,沒有理解finally塊的意義
finally塊的問題(finally block does not complete normally)