两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

我們都知道,在try…catch…finally語句中,finally作為異常處理的一部分,它緊緊地跟在try…catch語句后,且附帶一個語句塊,表示這段語句。


那么,在“正常”情況下,finally最終一定會被執(zhí)行,不管有沒有拋出異常,而且經(jīng)常被用在需要釋放資源的情況下。


那程序在運行過程中,一定會運行finally代碼塊嗎?其實并不一定,以下幾種情況中的finally語句塊中的代碼是不會運行的。


(1) try語句沒有被執(zhí)行到,如果在try語句之前return語句就返回了,此時finally語句就不會執(zhí)行。這也說明了finally語句被執(zhí)行的必要而非充分條件是相應(yīng)的try語句一定被執(zhí)行到。


(2) 如果一個線程在執(zhí)行try語句塊或者catch語句塊時被打斷(interrupted)或者被終止(killed),與其相對應(yīng)的finally語句塊可能不會執(zhí)行。


(3) 在try塊或者catch塊中有System.exit(0);這樣的語句。System.exit(0)是終止Java虛擬機(JVM)的,JVM都停止了,自然所有的程序就都結(jié)束了,當(dāng)然finally語句也就不會被執(zhí)行了。還有更極端的情況,比如:突然死機或者斷電等等。


(4) 如果finally語句是在守護線程里面,當(dāng)其他線程都執(zhí)行完的時候,守護線程需要立即停止,退出虛擬機,此時finally語句也有可能沒有執(zhí)行到。


(5) 在try…catch…finally語句中,當(dāng)return語句遇到finally語句時,return語句對finally語句無效,也就是說,在try塊或者catch塊里有return語句時,finally語句會被執(zhí)行,finally語句塊里的return語句會把try塊或者catch塊里的return語句效果給覆蓋掉。


點贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)