標籤:
在標準包java.lang中,Java定義了若干個異常類。前面的例子曾用到其中一些。這些異常一般是標準類RuntimeException的子類。因為java.lang實際上被所有的Java程式引入,多數從RuntimeException派生的異常都自動可用。而且,它們不需要被包含在任何方法的throws列表中。Java語言中,這被叫做未經檢查的異常(unchecked exceptions )。因為編譯器不檢查它來看一個方法是否處理或拋出了這些異常。 java.lang中定義的未經檢查的異常列於表10-1。表10-2列出了由 java.lang定義的必須在方法的throws列表中包括的異常,如果這些方法能產生其中的某個異常但是不能自己處理它。這些叫做受檢查的異常(checked exceptions)。Java定義了幾種與不同類庫相關的其他的異常類型。
表 10-1 Java 的 java.lang 中定義的未檢查異常子類
| 異常 |
說明 |
| ArithmeticException |
算術錯誤,如被0除 |
| ArrayIndexOutOfBoundsException |
數組下標出界 |
| ArrayStoreException |
數組元素賦實值型別不相容 |
| ClassCastException |
非法強制轉換類型 |
| IllegalArgumentException |
調用方法的參數非法 |
| IllegalMonitorStateException |
非法監控操作,如等待一個未鎖定線程 |
| IllegalStateException |
環境或應用狀態不正確 |
| IllegalThreadStateException |
請求操作與當前線程狀態不相容 |
| IndexOutOfBoundsException |
某些類型索引越界 |
| NullPointerException |
非法使用Null 參考 |
| NumberFormatException |
字串到數字格式非法轉換 |
| SecurityException |
試圖違反安全性 |
| StringIndexOutOfBounds |
試圖在字串邊界之外索引 |
| UnsupportedOperationException |
遇到不支援的操作 |
表 10-2 java.lang 中定義的檢查異常
| 異常 |
意義 |
| ClassNotFoundException |
找不到類 |
| CloneNotSupportedException |
試圖複製一個不能實現Cloneable介面的對象 |
| IllegalAccessException |
對一個類的訪問被拒絕 |
| InstantiationException |
試圖建立一個抽象類別或者抽象介面的對象 |
| InterruptedException |
一個線程被另一個線程中斷 |
| NoSuchFieldException |
請求的欄位不存在 |
| NoSuchMethodException |
請求的方法不存在
|
系列文章:
Java知多少(上)
Java知多少(39)interface介面
Java知多少(40)介面和抽象類別的區別
Java知多少(41)泛型詳解
Java知多少(42)泛型萬用字元和型別參數的範圍
Java知多少(43)異常處理基礎
Java知多少(44)異常類型
Java知多少(45)未被捕獲的異常
Java知多少(46)try和catch的使用
Java知多少(47)多重catch語句的使用
Java知多少(48)try語句的嵌套
Java知多少(49)throw:異常的拋出
Java知多少(50)Java throws子句
Java知多少(51)finally
Java知多少(52)內建異常