int常量 finally塊中的語句要是也拋出異常怎么處理?
finally塊中的語句要是也拋出異常怎么處理?Throws在方法聲明中用于指示當(dāng)前方法在運(yùn)行時(shí)將引發(fā)異常。調(diào)用方法時(shí)需要注意控制異常拋出。在方法體中使用拋出來手動(dòng)創(chuàng)建異常,中斷代碼以繼續(xù)執(zhí)行,并一起
finally塊中的語句要是也拋出異常怎么處理?
Throws在方法聲明中用于指示當(dāng)前方法在運(yùn)行時(shí)將引發(fā)異常。調(diào)用方法時(shí)需要注意控制異常拋出。在方法體中使用拋出來手動(dòng)創(chuàng)建異常,中斷代碼以繼續(xù)執(zhí)行,并一起使用try-catch-finally。當(dāng)一段代碼在運(yùn)行過程中發(fā)生異常并終止執(zhí)行時(shí),使用throws。結(jié)構(gòu)是try{//可能有異常的代碼}catch(異常類型){//發(fā)生異常時(shí)的處理方法}finally{//必須執(zhí)行的其他語句}當(dāng)try語句塊中的代碼在執(zhí)行期間有異常時(shí),它將被catch捕獲并在catch語句塊中處理。如果沒有發(fā)生異常,它將繼續(xù)執(zhí)行。finally語句塊中的代碼是一些無論try中是否有異常都必須執(zhí)行的語句,這里的代碼將被執(zhí)行
當(dāng)遇到finally語句塊時(shí),編譯器不只是調(diào)整代碼順序,而是復(fù)制finally語句塊的代碼。此代碼將復(fù)制到每個(gè)try塊的出口,包括return、throw exception,甚至外層的break for。這里的exit不是指Java語句,而是指編譯后的跳轉(zhuǎn)指令。所以如果返回f(x),編譯后會(huì)變成“f(x)的匯編代碼,最后匯編代碼跳轉(zhuǎn)上層調(diào)用地址”