新聞中心
本文向大家描述一下當(dāng)JVM異常發(fā)生時(shí),Java虛擬機(jī)采取的幾種措施,JVM異常情況在Java中被稱作Error(錯(cuò)誤)或Exception(JVM異常),是Throwable類的子類。

從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名與空間、網(wǎng)頁(yè)空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。
JVM異常捕捉的幾種情況
JVM異常情況在Java中被稱作Error(錯(cuò)誤)或Exception(JVM異常),是Throwable類的子類,在程序中的原因運(yùn)行時(shí)錯(cuò),如對(duì)一個(gè)空指針的引用。程序使用了throw語(yǔ)句。
當(dāng)JVM異常發(fā)生時(shí),Java虛擬機(jī)采取如下措施:
1、檢查與當(dāng)前方法相聯(lián)系的catch子句表。每個(gè)catch子句包含其有效指令范圍,能夠處理的JVM異常類型,以及處理JVM異常的代碼塊地址。
2、與JVM異常相匹配的catch子句應(yīng)該符合下面的條件:造成JVM異常的指令在其指令范圍之內(nèi),發(fā)生的JVM異常類型是其能處理的JVM異常類型的子類型。如果找到了匹配的catch子句,那么系統(tǒng)轉(zhuǎn)移到指定的JVM異常處理塊處執(zhí)行;如果沒(méi)有找到JVM異常處理塊,重復(fù)尋找匹配的catch子句的過(guò)程,直到當(dāng)前方法的所有嵌套的catch子句都被檢查過(guò)。
3、由于虛擬機(jī)從***個(gè)匹配的catch子句處繼續(xù)執(zhí)行,所以catch子句表中的順序是很重要的。因?yàn)镴ava代碼是結(jié)構(gòu)化的,因此總可以把某個(gè)方法的所有的JVM異常處理器都按序排列到一個(gè)表中,對(duì)任意可能的程序計(jì)數(shù)器的值,都可以用線性的順序找到合適的JVM異常處理塊,以處理在該程序計(jì)數(shù)器值下發(fā)生的JVM異常情況。
4、如果找不到匹配的catch子句,那么當(dāng)前方法得到一個(gè)“未截獲JVM異?!钡慕Y(jié)果并返回到當(dāng)前方法的調(diào)用者,好像JVM異常剛剛在其調(diào)用者中發(fā)生一樣。如果在調(diào)用者中仍然沒(méi)有找到相應(yīng)的JVM異常處理塊,那么這種錯(cuò)誤將被傳播下去。如果錯(cuò)誤被傳播到最頂層,那么系統(tǒng)將調(diào)用一個(gè)缺省的JVM異常處理塊。
名稱欄目:JVM異常發(fā)生時(shí)的應(yīng)對(duì)策略
文章地址:http://www.fisionsoft.com.cn/article/cdjosco.html


咨詢
建站咨詢
