Java 菜鳥(niǎo)教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 異常(Exceptions)

在本教程中,我們將學(xué)習(xí)Java中的異常。我們將介紹Java中的錯(cuò)誤,異常和不同類(lèi)型的異常。

 異常是程序執(zhí)行期間發(fā)生的意外事件。它影響程序指令流,從而導(dǎo)致程序異常終止。

 發(fā)生異常的原因有很多。其中包括:

  • 無(wú)效的用戶輸入

  • 設(shè)備故障

  • 網(wǎng)絡(luò)連接丟失

  • 物理限制(磁盤(pán)內(nèi)存不足)

  • 代碼錯(cuò)誤

  • 打開(kāi)一個(gè)不可用的文件

Java 異常層次結(jié)構(gòu)

這是Java中異常層次結(jié)構(gòu)的簡(jiǎn)化圖。

Java中的異常層次結(jié)構(gòu)

從上圖可以看到,Throwable類(lèi)是層次結(jié)構(gòu)中的根類(lèi)。

請(qǐng)注意,層次結(jié)構(gòu)分為兩個(gè)分支:錯(cuò)誤(Error)和異常(Exception)。

Error

Error表示不可恢復(fù)的情況,例如Java虛擬機(jī)(JVM)內(nèi)存不足,內(nèi)存泄漏,堆棧溢出錯(cuò)誤,庫(kù)不兼容,無(wú)限遞歸等。

錯(cuò)誤通常是程序員無(wú)法控制的,我們不應(yīng)該嘗試處理錯(cuò)誤。

Exception

程序可以捕獲并處理異常

當(dāng)方法內(nèi)發(fā)生異常時(shí),它將創(chuàng)建一個(gè)對(duì)象。該對(duì)象稱為異常對(duì)象。

它包含有關(guān)異常的信息,例如異常的名稱和說(shuō)明以及發(fā)生異常時(shí)的程序狀態(tài)。

在下一個(gè)教程中,我們將學(xué)習(xí)如何處理這些異常。在本教程中,我們現(xiàn)在將重點(diǎn)介紹Java中不同類(lèi)型的異常。

Java異常類(lèi)型

異常層次結(jié)構(gòu)還具有兩個(gè)分支:RuntimeException和IOException。

1. RuntimeException

一個(gè)運(yùn)行時(shí)異常發(fā)生由于編程錯(cuò)誤。它們也稱為非檢查異常。

這些異常不在編譯時(shí)檢查,而是在運(yùn)行時(shí)檢查。一些常見(jiàn)的運(yùn)行時(shí)異常是:

  • API使用不當(dāng) - IllegalArgumentException

  • 空指針訪問(wèn)(缺少變量的初始化)- NullPointerException

  • 越界數(shù)組訪問(wèn) - ArrayIndexOutOfBoundsException

  • 將數(shù)字除以0 - ArithmeticException

 你可以這樣想:“如果這是一個(gè)運(yùn)行時(shí)異常,那就是你的錯(cuò)”。

如果在使用變量之前檢查變量是否已初始化,則不會(huì)發(fā)生NullPointerException。
如果根據(jù)數(shù)組邊界測(cè)試數(shù)組索引,則不會(huì)發(fā)生ArrayIndexOutOfBoundsException。

2. IOException

IOException也稱為檢查異常。它們由編譯器在編譯時(shí)檢查,并提示程序員處理這些異常。

檢查異常的一些示例是:

  • 嘗試打開(kāi)不存在的文件會(huì)導(dǎo)致 FileNotFoundException

  • 試圖讀取超過(guò)文件結(jié)尾的內(nèi)容

現(xiàn)在我們已經(jīng)了解了異常,我們將在下一教程中學(xué)習(xí)處理異常。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清