1、異常處理概述
三類程序錯誤:
- 編譯錯誤–因爲程序沒有遵循語法規則,編譯程序能夠自己發現並且提示我們錯誤的原因和位置;
- 運行時錯誤–因爲程序在執行時,運行環境發現了不能執行的操作;
- 邏輯錯誤–因爲程序沒有按照預期的順序和邏輯執行。
異常——程序運行時可能出現一些錯誤,比如試圖打開一個根本不存在的文件等。如果置之不理,程序便會終止或直接導致系統崩潰,顯然這不是我們希望看到的結果。
異常處理機制——當程序出現錯誤後,程序如何處理。具體來說,異常機制提供了程序退出的安全通道。當出現錯誤後,程序執行的流程發生改變,程序的控制權轉移到異常處理器。
★ 掌握和編寫處異常理機制程序:找到異常出現的邏輯、使用完整的數據測試、形成有針對性的處異常理。
2、異常的分類
Throwable是所有異常的共同祖先,異常都是從Throwable繼承而來的。Throwable有兩個子類,Error和Exception。
① Error是錯誤,表示運行應用程序中出現了嚴重的錯誤,都是通過Error拋出的,一般是程序不能處理的系統錯誤。錯誤是沒法處理的。
Error類包括一些不能被程序員處理的嚴重的系統錯誤類,共有12個直接子類,一般表示代碼運行時 JVM(Java 虛擬機)出現的問題,如內存溢出、虛擬機錯誤、棧溢出等。這類錯誤與硬件有關,大多數錯誤與代碼編寫者執行的操作無關,通常由系統進行處理,程序本身無法捕獲和處理。如:當JVM耗完可用內存時,將出現OutOfMemoryError。如Java虛擬機運行錯誤,將出現VirtualMachineError、類定義錯誤將出現NoClassDefFoundError等。這些錯誤是不可查的,因爲它們在應用程序的控制和處理能力之外,而且絕大多數是程序運行時不允許出現的狀況。
② Exception是異常,表示程序運行時,程序本身可以捕獲並且可以處理的錯誤。異常是可以被處理的!
常見的異常有:
輸入輸出異常:IOException
算術異常類:ArithmeticExecption
空指針異常類:NullPointerException
類型強制轉換異常:ClassCastException
操作數據庫異常:SQLException
文件未找到異常:FileNotFoundException
數組負下標異常:NegativeArrayException
數組下標越界異常:ArrayIndexOutOfBoundsException
違背安全原則異常:SecturityException
文件已結束異常:EOFException
字符串轉換爲數字異常:NumberFormatException
方法未找到異常:NoSuchMethodException