java異常

異常(Exception)
異常體系
StackOverFlowError
VirtualMachineError
OutOfMemoryError

    AWTError

Throwable
FileNotFoundException
IOException
EOFException
ArithmeticException
RuntimeException MissinggResourceException
ClassNotFoundException
NullPointException
illegalArgumentException
ArrayIndexOutOfBoundsException
UnknowTypeException
Error和Exception
Error是程序無法處理的錯誤,它是由JVM產生和拋出的,這些異常發生時,java虛擬機一般會選擇線程終止。
Exception是程序本身可以處理的異常,這種異常分兩大類運行時異常和非運行異常。
運行時異常和非運行時異常(編譯時異常)
運行時異常是RuntimeException類及其子類異常,這些異常是不檢查異常,程序可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的,程序應該從邏輯角度儘可能避免這類異常的發生。
編譯時異常是RuntimeException以外的異常,類型上都屬於Exception類和其子類。從程序語法角度將必須進行處理的異常,如果不處理,程序就不能編譯通過
異常的捕獲和處理
throw throws try catch finally
try代碼塊中放需要檢查的代碼(可能會出現異常的代碼),catch代碼塊對try中的異常進行捕獲
try catch finally三個語句塊均不能單獨使用,三個代碼塊中的變量作用域在各自的代碼塊內部,finally無論try所制定程序塊是否拋出異常,catch代碼塊能否捕獲到異常,finally代碼塊終會執行
throw,throws
throw關鍵字用於方法體內部,用來拋出一個Throwable類型的異常。如果跑出了檢查異常,則還應該在方法頭部聲明方法可能拋出的異常類型,該方法的調用者也必須檢查拋出的異常。如果所有方法調用這都層層上拋獲取的異常,最終JVM會進行處理(打印異常消息和堆棧信息)
throws關鍵字用於方法體外部的方法聲明部分,用來聲明方法可能會拋出的異常。僅當拋出了檢查異常,該方法的調用者才必須處理或者重新拋出該異常,當該方法的調用者無力處理該異常時,應該繼續拋出。
throw拋出的是異常對象,throws拋出的是異常類
異常注意事項
子類在覆蓋父類方法時,父類方法如果拋出異常,那麼子類方法只能拋出異常或者該異常的子類
如果父類拋出多個異常,那麼子類只能拋出父類異常的子集
如果父類方法沒有拋出異常,那麼子類覆蓋時不能拋出異常只能try catch
常見的異常
NoSuchMethodException 沒有這個方法,當調用類的方法時,類已經不再具有該方法時,和粗線異常
SecturityException 安全檢測異常,存在安全侵犯
UnknowHostException 找不到主機異常,使用Socket關鍵字時,會出現此類異常
NumberFormatException 轉換字符串格式異常,當打算把字符串的數據轉換爲int型時,不匹配時發出的的異常
ArithmeticException 算術異常
NullointerException 空指針異常
ClassCastException 類型強制轉換異常
NegativeArrayException 數組負下標異常
ArrayIndexOutOfBoundsException 數組下標越界異常
EOFException 文件已結束異常
FileNotFoundException 文件未找到異常
SQLException 操作數據庫異常
IOException 輸入輸出異常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章