在java中,異常分為免檢異常和必檢異常
必檢異常就是編譯時被強制檢查的異常
異常鏈:通常在捕獲一個異常后拋出另一個異常,并希望把原始的異常信息保存下來,這被稱為異常鏈
在java中,Throwable的子類在構造器中可以接受一個cause(因由)作為參數,這個cause即為原始異常。
而在Throwable的子類中,只有三種基本的異常類提供了帶cause參數的構造器,即Error,Exception,RunTimeException;
但如果要把其他異常鏈接起來,應該使用InitCause()方法而不是構造器。
派生類構造器不能捕獲基類構造器拋出的異常
對于在構造階段可能會拋出異常,并且要求清理的類,最安全的方法是使用嵌套的try子句
這種通用的清理慣用法在構造器不拋出任何異常時也應該運用,其基本規則是:在創建一個需要清理的對象之后,立即進入一個try-finally語句塊
反射和泛型就是用來補償靜態類型檢查所帶來的過多限制