1.java將全部的錯誤封裝爲一個對象,其根本父類爲Throwable, Throwable有兩個子類:Error和Exception。java
2.Error
是Throwable
的子類,用於指示合理的應用程序不該該試圖捕獲的嚴重問題。大多數這樣的錯誤都是異常條件。雖然 ThreadDeath
錯誤是一個「正規」的條件,但它也是 Error
的子類,由於大多數應用程序都不該該試圖捕獲它。在執行該方法期間,無需在其 throws
子句中聲明可能拋出可是未能捕獲的 Error
的任何子類,由於這些錯誤多是不再會發生的異常條件。
3.Exception
類及其子類是 Throwable
的一種形式,它指出了合理的應用程序想要捕獲的條件。
4.RuntimeException
是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。可能在執行方法期間拋出但未被捕獲的RuntimeException
的任何子類都無需在 throws
子句中進行聲明。它是Exception的子類。程序員
5.異常的分類
Error:通常爲底層的不可恢復的類;
Exception:分爲未檢查異常(RuntimeException)和已檢查異常(非RuntimeException)。
未檢查異常是由於程序員沒有進行必須要的檢查,由於疏忽和錯誤而引發的錯誤。幾個經典的RunTimeException以下:
spa
1.java.lang.NullPointerException; 2.java.lang.ArithmaticException; 3.java.lang.ArrayIndexoutofBoundsException
Runtime Exception:
在定義方法時不須要聲明會拋出runtime exception; 在調用這個方法時不須要捕獲這個runtime exception; runtime exception是從java.lang.RuntimeException或java.lang.Error類衍生出來的。 例如:nullpointexception,IndexOutOfBoundsException就屬於runtime exception code
Exception 屬於應用程序級別的異常,這類異常必須捕捉,Exception體系包括RuntimeException體系和其餘非RuntimeException的體系對象
RuntimeException 表示系統異常,比較嚴重,若是出現RuntimeException,那麼必定是程序員的錯誤blog
什麼是unchecked異常?get
即RuntimeException(運行時異常)
不須要try...catch...或throws 機制去處理的異常虛擬機