您好,登錄后才能下訂單哦!
今天小編給大家分享一下JVM異常發(fā)生時的應對策略有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
JVM異常捕捉的幾種情況
JVM異常情況在Java中被稱作Error(錯誤)或Exception(JVM異常),是Throwable類的子類,在程序中的原因運行時錯,如對一個空指針的引用。程序使用了throw語句。
當JVM異常發(fā)生時,Java虛擬機采取如下措施:
1、檢查與當前方法相聯系的catch子句表。每個catch子句包含其有效指令范圍,能夠處理的JVM異常類型,以及處理JVM異常的代碼塊地址。
2、與JVM異常相匹配的catch子句應該符合下面的條件:造成JVM異常的指令在其指令范圍之內,發(fā)生的JVM異常類型是其能處理的JVM異常類型的子類型。如果找到了匹配的catch子句,那么系統(tǒng)轉移到指定的JVM異常處理塊處執(zhí)行;如果沒有找到JVM異常處理塊,重復尋找匹配的catch子句的過程,直到當前方法的所有嵌套的catch子句都被檢查過。
3、由于虛擬機從***個匹配的catch子句處繼續(xù)執(zhí)行,所以catch子句表中的順序是很重要的。因為Java代碼是結構化的,因此總可以把某個方法的所有的JVM異常處理器都按序排列到一個表中,對任意可能的程序計數器的值,都可以用線性的順序找到合適的JVM異常處理塊,以處理在該程序計數器值下發(fā)生的JVM異常情況。
4、如果找不到匹配的catch子句,那么當前方法得到一個“未截獲JVM異?!钡慕Y果并返回到當前方法的調用者,好像JVM異常剛剛在其調用者中發(fā)生一樣。如果在調用者中仍然沒有找到相應的JVM異常處理塊,那么這種錯誤將被傳播下去。如果錯誤被傳播到最頂層,那么系統(tǒng)將調用一個缺省的JVM異常處理塊。
以上就是“JVM異常發(fā)生時的應對策略有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。