我對選中/未選中的異常感到困惑。我認爲RunTimeException是未經檢查的異常,那麼爲什麼它來的Exception類?RunTimeExcception被選中/取消選中?
考慮一個案例..我的超類的構造函數拋出RunTimeException和子類的構造函數不拋出任何東西。然後它不會給任何編譯時間錯誤的子類。 爲什麼它發生,即使RuntimeException是未經檢查的異常?
Thaks, Gunjan Shah。
我對選中/未選中的異常感到困惑。我認爲RunTimeException是未經檢查的異常,那麼爲什麼它來的Exception類?RunTimeExcception被選中/取消選中?
考慮一個案例..我的超類的構造函數拋出RunTimeException和子類的構造函數不拋出任何東西。然後它不會給任何編譯時間錯誤的子類。 爲什麼它發生,即使RuntimeException是未經檢查的異常?
Thaks, Gunjan Shah。
檢查的異常是異常(或異常本身)的任何子類,不包括類RuntimeException及其子類。
進行異常檢查會強制客戶端程序員處理拋出異常的可能性。例如java.io.FileInputStream的read()方法引發IOException
未經檢查的異常是RuntimeException及其任何子類。類錯誤及其子類也未被選中。
但是,對於未經檢查的異常,編譯器不會強制客戶端程序員捕獲異常或將其聲明爲throws子句。事實上,客戶程序員甚至可能不知道可能拋出異常。例如,由String的charAt()方法拋出的StringIndexOutOfBoundsException。
檢查異常必須在編譯時捕獲。運行時異常不需要。錯誤通常不可能,因爲它們往往是不可恢復的。