總所周知,finally通常用於在一些處理異常的時候來關閉一些資源,例如關閉數據庫的鏈接;數據庫
finally能夠和try或者try.catch一塊兒使用,無論try和catch中出沒出現異常,finally塊中的代碼都會執行,可是若是在try以前出現了異常,那麼程序將不會繼續執行下來,即到達不了finally塊,這是一種finally不能執行的狀況,還有一種狀況就是在try中執行了System.exit(),那麼程序立馬退出,也不會執行finally裏的代碼;spa
值得一提的是當try和finally中都出先 return 語句的時候,首先try中的return的值並非立馬返回,而是存在於一個暫時的棧裏面,而後查看finally塊中存不存在return,如果不存在,則將暫時棧中的值返回便可,如果發現finally塊裏面也存在return,則會將暫時棧裏的值放棄,而且返回finally裏面的return的值。資源