您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java throw語句異常怎么處理”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java throw語句異常怎么處理”吧!
所有的方法都使用“throw”語句來拋出一個(gè)異常。Throw語句需要一個(gè)單獨(dú)throwable對(duì)象,這個(gè)對(duì)象是任意Throwable類的子類。如下類所示:
throw someThrowableObject;
讓我們?cè)诔绦虻纳舷挛闹衼砜匆幌聇hrow語句。下面的pop方法把來自于一個(gè)公共堆棧中的一個(gè)執(zhí)行類給刪除。這個(gè)方法從堆棧上面的元素,并且返回被刪除的對(duì)象。
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方法就會(huì)實(shí)例化一個(gè)新的EmptyStackException對(duì)象(它是java.util中的一個(gè)成員),并且拋出它。在這章的后面一節(jié)會(huì)解釋怎樣創(chuàng)建自己的異常類。對(duì)于現(xiàn)在,你所需要記住的是你只能拋出繼承于java.lang.Throwable類的對(duì)象。
注意,pop方法的聲明中包含了一個(gè)throws子句。EmptyStackException是一個(gè)檢查性異常,并且pop方法沒有捕捉這個(gè)異常。因此,這個(gè)方法必須使用throws子名來聲明它所拋出的異常的類型。
Throwable 類和它的子類
繼承Throwable類的對(duì)象包括直接子類(直接繼承于Throwable類的對(duì)象)和間接子類(繼承于Throwable類的子類的對(duì)象)。下圖說明了Throwable類的層次關(guān)系和最主要的一些子類。象你看到的一樣,Throws有兩個(gè)直接的子類:Error類和Exception類。
Error類
當(dāng)在Java虛擬機(jī)中發(fā)生動(dòng)態(tài)連接失敗或其它的定位失敗的時(shí)候,Java虛擬機(jī)拋出一個(gè)Error對(duì)象。典型的簡(jiǎn)易程序不捕獲或拋出Errors對(duì)象。
Exception類
大多數(shù)程序都拋出或捕獲衍生于Exception類的對(duì)象。一個(gè)異常表明發(fā)生了一個(gè)問題,但它不是嚴(yán)重的系統(tǒng)問題。你編定的大多數(shù)程序?qū)?huì)拋出或捕獲Exceptions對(duì)象(而不是Errors對(duì)象)。
在Java平臺(tái)中Exception類有許多已經(jīng)定義了的子類。這些子類說明所發(fā)生的異常的各種類型。例如,IllegalAccessException異常類說明了不能找到一個(gè)特殊的方法;NegativeArraySizeException異常類說明程序試圖創(chuàng)建一個(gè)帶有負(fù)尺寸的數(shù)組。
有一個(gè)特殊的Exception子類:RuntimeException。這個(gè)子類是在程序運(yùn)行期間在Java虛擬機(jī)內(nèi)部所發(fā)生的異常。例如NullPointerException類就是一個(gè)運(yùn)行時(shí)異常類,在一個(gè)方法試圖通過一個(gè)null引用來訪問一個(gè)對(duì)象的成員時(shí)會(huì)發(fā)生這個(gè)異常。在Unchecked Exceptions---The Controversy這一節(jié)中,我們會(huì)討論為什么典型的程序不應(yīng)該拋出運(yùn)行時(shí)異?;騌untimException類的子類異常對(duì)象。
感謝各位的閱讀,以上就是“Java throw語句異常怎么處理”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java throw語句異常怎么處理這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。