java.lang.Throwable
類是Java語言中錯誤Error和異常Exception的超類java
Error
類主要用於描述Java虛擬機沒法解決的嚴重錯誤.一般沒法編碼解決.如JVM掛掉了Exception
類主要用於描述因編程錯誤或偶然外在因素致使的輕微錯誤,一般能夠編碼解決.如:0做爲除數等java.lang.Exception
類是全部異常的超類.主要分爲如下兩種程序員
RuntimeException
-運行時異常,也叫做非檢測性異常IOException
和其它異常-其它異常,也叫做檢測性異常.所謂檢測性異常就是指在編譯階段都能被編譯器檢測出來的異常RuntimeException
類的主要子類編程
ArithmeticException
類 - 算術異常ArrayIndexOutOfBoundsException
類 - 數組下標越界異常NullPointerException
類 - 空指針異常ClassCastException
類 - 類型轉換異常NumberFormatException
類 - 數字格式異常if
條件判斷來避免異常的發生if
條件判斷會致使程序的代碼加長,臃腫,可讀性差try{ 編寫可能發生異常的代碼; } catch(異常類型 引用變量名){ 編寫針對該類異常的處理代碼; } ... finally{ 編寫不管是否發生異常都要執行的代碼; }
catch
分支時,切記小類型應該放在大類型的前面finally
一般用於進行善後處理,如:關閉已經打開的文件等try{ a; b; // 可能發生異常的語句 c; }catch(Exception e){ d; }finally{ e; }
在某些特殊狀況下, 有些異常不能處理或不便於處理時, 就能夠將該異常轉移給該方法的調用者, 這種方法就叫異常的拋出.數組
當方法執行時出現異常, 則底層生成一個異常類對象拋出, 此時異常代碼後續的代碼就再也不執行編碼
訪問權限 返回值類型 方法名稱(形參列表) throws 異常類型1, 異常類型2, ... {方法體;}
指針
public void show() throws IOException{}
子類重寫的方法不能拋出更大的異常, 不能拋出平級不同的異常, 但能夠拋出同樣的異常, 更小的異常, 以及不拋出異常code
當須要在程序中表達年齡不合理的狀況時, 而Java官方又沒有提供這種針對性的異常, 此時就須要程序員自定義異常加以描述orm
xxxException
異常類, 繼承Exception
類或者子類throw new 異常類型(實參)
在須要拋出異常的加入上述語句便可.對象
如throw new AgeException("年齡不合理");
繼承