天天看點

Java異常處理總結(一)

異常:是在程式執行期間中斷指令的正常流程的事件。

關鍵字:try、catch、throw、finally、throws。

結構圖如下:

Java異常處理總結(一)

1、子類重載父類的方法時

1)父類中的某方法抛出異常Exc1,子類對應的方法可以忽略此異常,即不抛出異常,如需抛出異常,則確定此異常為Exc1,或者Exc1的子類。

2)父類的某方法沒有抛出異常,則子類對應的方法不能抛出異常

2、将異常沿用調用堆棧向上傳遞(抛出的異常使得其進入了一個更高一級環境的異常控制器)

Java運作時環境會沿用調用堆棧往回搜尋,尋找可以處理某個異常的方法。如下的方法method1。

    void method1(){

        try {

            method2();

        } catch (Exception e) {

            //to do exception process.

        }

    }

    void method2() throws Exception{

        method3();

    }

    void method3() throws Exception{

        new File("");

    }

3、異常的層次圖(詳見Java API)

  • java.lang.Throwable (implements java.io.Serializable)
    • java.lang.Error
      • ...
    • java.lang.Exception
      • java.lang.ClassNotFoundException
      • java.lang.CloneNotSupportedException
      • java.lang.IllegalAccessException
      • java.lang.InstantiationException
      • java.lang.InterruptedException
      • java.lang.NoSuchFieldException
      • java.lang.NoSuchMethodException
      • java.lang.RuntimeException
        • java.lang.ArithmeticException
        • java.lang.ArrayStoreException
        • java.lang.ClassCastException
        • java.lang.EnumConstantNotPresentException
        • java.lang.IllegalArgumentException
          • java.lang.IllegalThreadStateException
          • java.lang.NumberFormatException
        • java.lang.IllegalMonitorStateException
        • java.lang.IllegalStateException
        • java.lang.IndexOutOfBoundsException
          • java.lang.ArrayIndexOutOfBoundsException
          • java.lang.StringIndexOutOfBoundsException
        • java.lang.NegativeArraySizeException
        • java.lang.NullPointerException
        • java.lang.SecurityException
        • java.lang.TypeNotPresentException
        • java.lang.UnsupportedOperationException