Java 異常處理機制(異常鏈)__Java

來源:互聯網
上載者:User

JVM (JAVA 虛擬機器 的縮寫)用方法調用棧來跟蹤一系列的方法調用過程。該堆棧儲存了每個調用方法的本地資訊。當一個新的方法被調用時,JVM把描述該方法的棧結構置入棧頂,位於棧頂的方法為正在執行的方法。

如果在執行的方法過程中拋出異常,JVM必須找到能捕獲該異常的catch塊
( 1 ) 它首先觀察當前方法是否存在catch塊,如果存在,就執行該catch代碼塊
( 2 ) 如果不存在,JVM會從從調用棧中彈出該方法的棧結構,繼續到前一個方法中尋找合適的catch塊
(3)當JVM追溯到調用棧的最底部的方法,如果仍然沒有找到處理該異常的代碼塊,將調用異常對象的printStackTrace()方法,列印來自方法調用棧的異常資訊隨後終止整個應用程式。

由此可見,在回溯的過程中,如果JVM在某個方法中找到了處理該異常的代碼塊,則該方法的棧結構將稱為棧頂元素,程式流程將轉到該方法的異常處理代碼部分繼續執行。

我個人認為,在java尋找異常最初發生的地方,得通過調試資訊表一個慢慢回溯到原始異常,需要看控制台printstacktrace() 列印的資訊,相對oc而言,我覺得oc用的exception breakPoint 更實在,直接定位在異常發生的地方。容易定位。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.