關於“finally block does not complete normally”警告提示


最近發現,有些東西還是要記錄一下的,不記錄事情一多就慢慢地忘了,真的是好記性不如爛筆頭。今天記錄一下finally的警告“finally block does not complete normally”的原因,以及解決方法。(finally必須出現在try,catch塊之后,不能單獨出現)。

在解決這個警告之前,我們需要先梳理一下各種情況下try,catch,finally的執行結果。

1.當try,catch中有return,finally中沒有return時,無論finally中對返回值如何修改,最后返回的依舊是try,catch中的返回值。

2.當try,cath中沒有return,finally中有return時,最后返回的是finally中經過處理的返回值。

3.當try,catch中有return,finally中有return時,try,catch中的return被finally中的return覆蓋,最后真正返回的是finally中經過處理的返回值。

我們再看一下警告信息“finally block does not complete normally”,它是因為try,catch中有return,而且finally中也有return,finally中的return會覆蓋掉try,catch中的return,可能導致finally塊無法正常完成。解決這個異常我們根據情況去掉其中一個return即可,不過最好別在finally中加return,他可能會導致返回的並不是我們在try,catch中要返回的值。

 

https://www.cnblogs.com/aigongsi/archive/2012/04/19/2457735.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM