Java如何進行異常處理


關鍵字:throws、throw、try、catch、finally的用法

Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其子類的實例。當一個方法出現異常后便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並可以對其進行處理。Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果系統會拋出(throw)一個異常對象,可以通過它的類型來捕獲(catch)它,或通過總是執行代碼塊(finally)來處理;try用來指定一塊預防所有異常的程序;catch子句緊跟在try塊后面,用來指定你想要捕獲的異常的類型;throw語句用來明確地拋出一個異常;throws用來聲明一個方法可能拋出的各種異常;finally為確保一段代碼不管發生什么異常狀況都要被執行;try語句可以嵌套,每當遇到一個try語句,異常的結構就會被放入異常棧中,直到所有的try語句都完成。如果下一級的try語句沒有對某種異常進行處理,異常棧就會執行出棧操作,直到遇到有處理這種異常的try語句或者最終將異常拋給JVM。

Error和Exception有什么區別? 

  1. Error表示系統級的錯誤和程序不必處理的異常,是恢復不是不可能但很困難的情況下的一種嚴重問題;比如內存溢出,不可能指望程序能處理這樣的情況;
    1. 一般開發者不要自定義Error子類,因為它代表系統級別的錯誤。與一般的程序無關。
    2. 在Java異常處理機制中,Error不強制捕獲或聲明,也就是不強制處理。因為程序本身對此類錯誤無能為力。一般情況下我們只要把堆棧跟蹤信息記錄下來就行。
  2. Exception表示需要捕捉或者需要程序進行處理的異常,是一種設計或實現問題;也就是說,它表示如果程序運行正常,從不會發生的情況。
    1. 在Java中,除了系統環境問題引起的異常,一般都繼承於Exception類。Exception分為RuntimeException和Checked Exception。對於Exception類,如果你創建了一個異常類型,直接繼承於Exception,那么這個異常類型將屬於檢查異常(Checked Exception),Checked Exception必須要捕獲或聲明。而RuntimeException這種運行異常不強制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM