Java中finally不執行的情況

前提條件:代碼進入到與finally配套的try/catch語句中。

1.寫入代碼:System.exit(0),它表示退出當前Java虛擬機,一旦退出Java虛擬機,任何代碼都不會再執行。

2.線程被終止或打斷:如果當一個線程在執行 try 語句塊或者 catch 語句塊時被打斷(interrupted)或者被終止(killed),與其相對應的 finally 語句塊可能不會執行。還有更極端的情況,就是在線程運行 try 語句塊或者 catch 語句塊時,突然死機或者斷電,finally 語句塊肯定不會執行了。

3.當線程爲守護線程時,如果主線程死亡了,finally也不會執行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章