Exception
Throwable 是 Java 中所有錯誤或異常的父類別(也是一切皆可拋的東西)。Throwable 有兩個子類別:Error 和Exception 。
Error :
用於指示合理的應用程序不應該試圖捕獲的嚴重問題。這種情況是很大的問題,大到你不能處理了,所以聽之任之就行了,你不用管它。比如說VirtualMachineError:當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。好吧,就算這個異常的存在了,那麼應該何時,如何處理它呢??交給JVM 吧,沒有比它更專業的了。
Exception :
它指出了合理的應用程序想要捕獲的條件。Exception 又分為兩種:
CheckedException :CheckedException 需要用 try/catch 否則無法編譯執行,CheckedException 太多了,IO 類別中的IOException 及其子類別,這些都是 CheckedException 。
UncheckedException(RuntimeException ) : 通常 UncheckedException 又叫做RuntimeException, UncheckedException 不需要 try/catch 即可編譯執行,但當例外產生時,程式會不正常的終止。常見的 RuntimeExcepiton 有 IllegalArgumentException、IllegalStateException、NullPointerException 、 IndexOutOfBoundsException 等等。
throws
Java語言要求設計師必需自行處理可能產生 Checked Exception 的程式碼。但其實,當例外產生時,您也可以不要使用「try-catch」機制立即處理它。可以取代的作法是:將它「丟(throws)」出來給上一層處理
throw
手動丟出例外
參考:
http://mis.hwai.edu.tw/~kevin/MISProject/JAVAProject/chapter9/c9-3.htm
http://www.cnblogs.com/focusj/archive/2011/12/26/2301524.html