java 中的異常有一種區別方式:checked exception和unchecked exception;java
unchecked exception繼承自RuntimeException;spa
checked exception繼承自Exception;繼承
我認爲這二者的區別在於,unchecked exception是徹底能夠經過代碼來避免出現的;it
而checked exception則是代碼不可控的。所謂的不可控和可避免指的固然不是catch,而是,exception的發生。io
譬如ArithmeticException(unchecked)徹底能夠經過在計算以前加個if判斷來避免出現。因此對於這類異常,java的處理機制就是絕不留情的shutdown(固然前提是不在try塊中),exception
對於checked異常,java的處理機制是,你必須在代碼中作出處理,無論你是catch住仍是throw出去。im