JAVA Exception 和 Error 的理解

結構:java

Error類和Exception類都繼承自Throwable類。

Error的繼承關係:

java.lang.Object > java.lang.Throwable > java.lang.Error

Exception的繼承關係:

java.lang.Object > java.lang.Throwable > java.lang.Exception程序員

定義:spa

Error(錯誤)表示系統級的錯誤和程序沒必要處理的異常,是java運行環境中的內部錯誤或者硬件問題,好比,內存資源不足等,對於這種錯誤,程序基本無能爲力,除了退出運行外別無選擇。  
Exception(異常)表示須要捕捉或者須要程序進行處理的異常,它處理的是由於程序設計的瑕疵而引發的問題或者在外的輸入等引發的通常性問題,是程序必須處理的。
      JAVA 的checked異常和unchecked異常
設計

      什麼是unchecked異常?即RuntimeException(運行時異常),好比ArrayIndexOutOfBoundException, ClassCastException等,不須要try...catch...或throws 機制去處理的異常,老是由虛擬機接管。這類異常自己就是bug,應該被修復,出現此類錯誤時程序就應該當即中止執行。 所以,面對Errors和unchecked exceptions應該讓程序自動終止執行,程序員不應作諸如try/catch這樣的事情,而是應該查明緣由,修改代碼邏輯。orm

    (附)列舉最經常使用的五種RuntimeException: 繼承

 ArithmeticException int a=0;
int b= 3/a;
 ClassCastException: Object x = new Integer(0);
System.out.println((String)x);
 IndexOutOfBoundsException
   ArrayIndexOutOfBoundsException,
   StringIndexOutOfBoundsException 
int [] numbers = { 1, 2, 3 };
int sum = numbers[3];
IllegalArgumentException
   NumberFormatException
int a = Interger.parseInt("test");
NullPointerExceptionextends

        除了RuntimeException,其餘繼承自java.lang.Exception得異常統稱爲Checked Exception,好比FileNotFoundException, ParseException等。內存

         對於checked exception這種異常,JAVA編譯器強制要求咱們必需對出現的這些異常進行catch。
ci

相關文章
相關標籤/搜索