java中的異常類有哪幾類?分別怎麼使用?
阿新 • • 發佈:2018-12-15
1.異常類有分為編譯時異常和執行時異常
1.1編譯時異常:寫程式碼的時候就會提醒你有異常
常見的編譯時異常有:
IOException
SQLException
CloneNotSupportedException
parseException
1.2執行時異常:java.lang.RuntimeException,執行的時候會在控制檯提示異常
常見的執行時異常有: NullPointerException: 空指標異常,一般出現於陣列,空物件的變數和方法 ArrayIndexOutOfBoundsException: 陣列越界異常 ArrayStoreException: 資料儲存異常 NoClassDefFoundException: java執行時系統找不到所引用的類 ArithmeticException: 算數異常,一般在被除數是0中 ClassCastException: 型別轉換異常 IllegalArgumentException: 非法引數異常 IllegalThreadStateException: 非法執行緒狀態異常 NumberFormatException: 資料格式異常 OutOfMemoryException: 記憶體溢位異常 PatternSyntaxException: 正則異常
1.3自定義異常:
自定義一個類,繼承某個異常類
如果繼承的是Exception那麼就定義了一個編譯時異常
如果繼承的是RuntimeException或者其子類,那麼就定義了一個執行時異常
2.怎麼使用:
2.1一種是在方法中聲名異常,誰呼叫就把異常拋給誰 2.2一種是使用try{}..catch{}塊處理異常 如果多個異常處理的方式不同,可以用多個catch處理 如果所有異常處理方式一樣,可以捕獲一個父類異常進行統一的處理 如果多個異常分成了不同的組,那麼同一組異常之間可以使用|隔開(jdk1.7開始) jdk1.7還增加了增強tr(){}catch(){},通常用於自動關流
3.異常知識擴充套件:
3.1 Throwable類是所有異常的超類,有兩個子類,分為Error和Exception
Error:錯誤是無法處理的,只能更改程式碼,就像一個人得癌症一樣
Exception:異常是可以處理的,就像是感冒一樣,吃藥就能好
3.2 在方法重寫的時候
子類丟擲的編譯時異常不能超過父類編譯時異常範圍
子類不能丟擲比父類更多的編譯時異常(這裡是指丟擲異常的範圍不能更大,但個數可以更多)
編譯時異常隨你拋
個人總結,如有錯誤或疑問請幫我指出,謝謝^!