天天看點

Try catch finally,try裡有return,finally還執行麼?

在java語言的異常進行中,finally經常被用在需要釋放資源的情況下,無論出現什麼情況,finally塊裡面的代碼一定會被執行。(除了兩種情況,一種是在程式進入try語句塊之前就出現異常,會直接結束,不會執行finally塊裡面的代碼。第二種是程式在try語句塊中強制退出時也不會去執行finally塊裡面的代碼。)。由于程式執行return就意味着結束對目前函數的調用并跳出這個函數體。是以任何語句要執行都隻能在return前執行(除非碰到exit函數), 是以 finally塊裡的代碼也是在return前執行的。此外,如果try-finally或者catch- finally中都有return,那麼 finally塊中的return語句将會覆寫别處的return語句,最終傳回到調用者那裡的是 finally中return的值。