Java 異常處理六
Java 異常處理六[@more@] “throw”語句
所有的方法都使用“throw”語句來丟擲一個異常。Throw語句需要一個單獨throwable物件,這個物件是任意Throwable類的子類。如下類所示:
throw someThrowableObject;
讓我們在程式的上下文中來看一下throw語句。下面的pop方法把來自於一個公共堆疊中的一個執行類給刪除。這個方法從堆疊上面的元素,並且返回被刪除的物件。
public Object pop() throws EmptyStackException {
Object obj;
if (size == 0) {
throw new EmptyStackException();
}
obj = objectAt(SIZE - 1);
setObjectAt(SIZE - 1, null);
size--;
return obj;
}
pop方法檢查堆疊上是否有元素。如果堆疊是空的(也就是說它的尺寸等於0),pop方法就會例項化一個新的EmptyStackException物件(它是java.util中的一個成員),並且丟擲它。在這章的後面一節會解釋怎樣建立自己的異常類。對於現在,你所需要記住的是你只能丟擲繼承於java.lang.Throwable類的物件。
注意,pop方法的宣告中包含了一個throws子句。EmptyStackException是一個檢查性異常,並且pop方法沒有捕捉這個異常。因此,這個方法必須使用throws子名來宣告它所丟擲的異常的型別。
Throwable 類和它的子類
繼承Throwable類的物件包括直接子類(直接繼承於Throwable類的物件)和間接子類(繼承於Throwable類的子類的物件)。下圖說明了Throwable類的層次關係和最主要的一些子類。象你看到的一樣,Throws有兩個直接的子類:Error類和Exception類。
Error類
當在Java虛擬機器中發生動態連線失敗或其它的定位失敗的時候,Java虛擬機器丟擲一個Error物件。典型的簡易程式不捕獲或丟擲Errors物件。
Exception類
大多數程式都丟擲或捕獲衍生於Exception類的物件。一個異常表明發生了一個問題,但它不是嚴重的系統問題。你編定的大多數程式將會丟擲或捕獲Exceptions物件(而不是Errors物件)。
在Java平臺中Exception類有許多已經定義了的子類。這些子類說明所發生的異常的各種型別。例如,IllegalAccessException異常類說明了不能找到一個特殊的方法;NegativeArraySizeException異常類說明程式試圖建立一個帶有負尺寸的陣列。
有一個特殊的Exception子類:RuntimeException。這個子類是在程式執行期間在Java虛擬機器內部所發生的異常。例如NullPointerException類就是一個執行時異常類,在一個方法試圖透過一個null引用來訪問一個物件的成員時會發生這個異常。在Unchecked Exceptions---The Controversy這一節中,我們會討論為什麼典型的程式不應該丟擲執行時異常或RuntimException類的子類異常物件。
所有的方法都使用“throw”語句來丟擲一個異常。Throw語句需要一個單獨throwable物件,這個物件是任意Throwable類的子類。如下類所示:
throw someThrowableObject;
讓我們在程式的上下文中來看一下throw語句。下面的pop方法把來自於一個公共堆疊中的一個執行類給刪除。這個方法從堆疊上面的元素,並且返回被刪除的物件。
public Object pop() throws EmptyStackException {
Object obj;
if (size == 0) {
throw new EmptyStackException();
}
obj = objectAt(SIZE - 1);
setObjectAt(SIZE - 1, null);
size--;
return obj;
}
pop方法檢查堆疊上是否有元素。如果堆疊是空的(也就是說它的尺寸等於0),pop方法就會例項化一個新的EmptyStackException物件(它是java.util中的一個成員),並且丟擲它。在這章的後面一節會解釋怎樣建立自己的異常類。對於現在,你所需要記住的是你只能丟擲繼承於java.lang.Throwable類的物件。
注意,pop方法的宣告中包含了一個throws子句。EmptyStackException是一個檢查性異常,並且pop方法沒有捕捉這個異常。因此,這個方法必須使用throws子名來宣告它所丟擲的異常的型別。
Throwable 類和它的子類
繼承Throwable類的物件包括直接子類(直接繼承於Throwable類的物件)和間接子類(繼承於Throwable類的子類的物件)。下圖說明了Throwable類的層次關係和最主要的一些子類。象你看到的一樣,Throws有兩個直接的子類:Error類和Exception類。
Error類
當在Java虛擬機器中發生動態連線失敗或其它的定位失敗的時候,Java虛擬機器丟擲一個Error物件。典型的簡易程式不捕獲或丟擲Errors物件。
Exception類
大多數程式都丟擲或捕獲衍生於Exception類的物件。一個異常表明發生了一個問題,但它不是嚴重的系統問題。你編定的大多數程式將會丟擲或捕獲Exceptions物件(而不是Errors物件)。
在Java平臺中Exception類有許多已經定義了的子類。這些子類說明所發生的異常的各種型別。例如,IllegalAccessException異常類說明了不能找到一個特殊的方法;NegativeArraySizeException異常類說明程式試圖建立一個帶有負尺寸的陣列。
有一個特殊的Exception子類:RuntimeException。這個子類是在程式執行期間在Java虛擬機器內部所發生的異常。例如NullPointerException類就是一個執行時異常類,在一個方法試圖透過一個null引用來訪問一個物件的成員時會發生這個異常。在Unchecked Exceptions---The Controversy這一節中,我們會討論為什麼典型的程式不應該丟擲執行時異常或RuntimException類的子類異常物件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10901326/viewspace-965500/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 異常處理Java
- JAVA異常處理Java
- JAVA 異常處理Java
- JAVA_異常處理Java
- Java 異常表與異常處理原理Java
- 初學Solidity(六):Solidity異常處理Solid
- 重學Java - 異常處理Java
- java異常處理筆記Java筆記
- Java異常處理(非常全面)Java
- Java異常處理機制Java
- 異常篇——異常處理
- Java 異常處理:使用和思考Java
- Java進階02 異常處理Java
- JAVA學習之異常處理Java
- java異常的處理機制Java
- Java 的異常處理機制Java
- Java之異常處理try{}catch(){}Java
- 異常處理
- Java 中的異常處理機制Java
- 甩鍋(throws)_ java異常(Exception)處理JavaException
- Java入門教程十一(異常處理)Java
- [轉載] Java異常處理習題Java
- Java異常處理12條軍規Java
- JSP 異常處理如何處理?JS
- 異常-throws的方式處理異常
- 異常的處理
- golang - 異常處理Golang
- 異常處理2
- 異常處理1
- oracle異常處理Oracle
- Python——異常處理Python
- Python異常處理Python
- ThinkPHP 異常處理PHP
- JavaScript 異常處理JavaScript
- Abp 異常處理
- 08、異常處理
- SpringMVC異常處理SpringMVC
- React 異常處理React
- JS異常處理JS