1. 程式人生 > >finally塊的問題(finally block does not complete normally)

finally塊的問題(finally block does not complete normally)

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)