Java主要分爲兩種異常:java
- checked Exception.能夠簡單理解爲必須捕獲的異常,強制拋出。
- unchecked Exception.也就是運行時異常,不用顯式拋出,運行時有可能被拋出,client code 沒法處理該類yichan。包括ArithmeticException、ClassCastException、 IndexOutOfBoundsException、ArrayIndexOutOfBoundsException,
StringIndexOutOfBoundsException、IllegalArgumentException、NumberFormatException、NullPointerException
Error、RuntimeException及其子類是unchecked Exception,其它的歸爲checked Exception。程序員
Error是java本身的錯誤或者諸如內存耗盡等嚴重錯誤,是不可抗拒的,client沒法處理,顯然也沒有必要去捕捉。 RuntimeException是你的程序有邏輯錯誤,是程序員本身的編碼問題,儘可能避免就是了。好比NullPointerException等。當遇到這種錯誤時,java將這個錯誤自動捕捉到,顯示到concole裏,而後繼續運行。而checked exception若是不捕捉則會致使程序終止。編碼