異常:是在程式執行期間中斷指令的正常流程的事件。
關鍵字:try、catch、throw、finally、throws。
結構圖如下:
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
- java.lang.Error