2012-05-09 47 views
0

我對選中/未選中的異常感到困惑。我認爲RunTimeException是未經檢查的異常,那麼爲什麼它來的Exception類?RunTimeExcception被選中/取消選中?

考慮一個案例..我的超類的構造函數拋出RunTimeException和子類的構造函數不拋出任何東西。然後它不會給任何編譯時間錯誤的子類。 爲什麼它發生,即使RuntimeException是未經檢查的異常?

Thaks, Gunjan Shah。

回答

2

檢查的異常是異常(或異常本身)的任何子類,不包括類RuntimeException及其子類。

進行異常檢查會強制客戶端程序員處理拋出異常的可能性。例如java.io.FileInputStream的read()方法引發IOException

未經檢查的異常是RuntimeException及其任何子類。類錯誤及其子類也未被選中。

但是,對於未經檢查的異常,編譯器不會強制客戶端程序員捕獲異常或將其聲明爲throws子句。事實上,客戶程序員甚至可能不知道可能拋出異常。例如,由String的charAt()方法拋出的StringIndexOutOfBoundsException。

檢查異常必須在編譯時捕獲。運行時異常不需要。錯誤通常不可能,因爲它們往往是不可恢復的。

相關問題