1. 程式人生 > >程式設計師面試金典: 9.14 Java 14.2在Java中,若在try-catch-finally的try語句塊中插入return語句,finally語句塊是否還會執行?

程式設計師面試金典: 9.14 Java 14.2在Java中,若在try-catch-finally的try語句塊中插入return語句,finally語句塊是否還會執行?

問題:在Java中,若在try-catch-finally的try語句塊中插入return語句,finally語句塊是否還會執行?
分析:不一定。如果在try語句中走到return語句之前都沒有發生異常,會走到return語句,就直接返回了。
              如果在走到return語句之前try中發生異常,finally語句塊會執行。
書上解法:以上分析錯誤。finally會執行,即使試圖通過return語句返回,也會執行。除非虛擬機器執行try/catch退出,或執行緒被殺死。
關鍵:從finally的定義來,一定會執行