2012-02-04 59 views

回答

5

所有可以拋出的東西都是Throwable。有兩種類型的Throwable

一個Exception子類是RuntimeException,這是 「未登記」 - 這意味着你不必申報或趕上他們。這些通常用於「編程錯誤」,如NullPointerExceptionArrayOutOfBoundsException

Errors也是「未登記」,並且是「不可恢復」的情況,如OutOfMemoryError

任何Throwable的ErrorRuntimeException是「檢查」和拋出或捕獲必須聲明一個子類。

1

喲需要看看檢查和未經檢查的異常之間的區別。

1

UnsupportedOperationExceptionRuntimeException這是一種未經檢查的異常。這些是執行程序期間出現的例外情況,並指示不可能從中恢復的狀態。

檢查異常,您必須以某種方式處理的類型是異常,您可能會編寫代碼進行優雅處理。

Java語言規範,section 11.2.5,規定非常好:

運行時異常類(它是RuntimeException及其子類) 從編譯時檢查豁免,因爲在 的設計師的判斷Java編程語言必須聲明這樣的例外,這對於建立程序的正確性 沒有太大的幫助。

有兩種類型背後的想法的一些很好的解釋。 Java教程有一個標題爲Unchecked Exceptions — The Controversy的頁面,如果需要更長時間的討論,請參見Checked or Unchecked Exceptions?

0

IOException是一個「已檢查」異常,必須處理。