全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

什么是異常?Java中常見(jiàn)的異常類(lèi)

更新時(shí)間:2022-04-21 來(lái)源:黑馬程序員 瀏覽量:

什么是異常

在程序運(yùn)行的過(guò)程中也會(huì)發(fā)生異常情況,例如運(yùn)行時(shí)內(nèi)存溢出、磁盤(pán)空間不足、網(wǎng)絡(luò)中斷等。針對(duì)此類(lèi)狀況,Java中提供了異常處理機(jī)制,以異常類(lèi)的形式對(duì)這些不正常情況進(jìn)行封裝,通過(guò)異常處理機(jī)制對(duì)程序代碼發(fā)生的各種問(wèn)題進(jìn)行有針對(duì)性地處理。接下來(lái)通過(guò)一個(gè)案例來(lái)了解一下什么是異常,如文件3-41所示。
文件3-41Example17.java

package com.itheima.example17;
public class Example17 {
    public static void main(String[] args) {
        int res = calculate(5, 0); // 調(diào)用calculate()方法
        System.out.println(res);
    }
    // 下面的方法實(shí)現(xiàn)了兩個(gè)整數(shù)相除
    public static int calculate(int a, int b) {
        int res = a / b; // 定義一個(gè)變量res記錄兩個(gè)數(shù)相除的結(jié)果
        return res; // 將結(jié)果返回
    }
}
運(yùn)行結(jié)果如圖3-21所示。

1650520416484_108.png

圖3-21運(yùn)行結(jié)果

從圖3-21的運(yùn)行結(jié)果可以看出,程序出現(xiàn)了算術(shù)異常(ArithmeticException),這個(gè)異常是由于在第4行代碼調(diào)用divide()方法時(shí)傳入了參數(shù)0,而在calculate()方法中,運(yùn)算時(shí)出現(xiàn)了被0除的情況。程序出現(xiàn)異常后導(dǎo)致程序立即結(jié)束,無(wú)法繼續(xù)向下執(zhí)行。

常見(jiàn)的異常類(lèi)

在上一小節(jié)中產(chǎn)生的ArithmeticException異常只是Java異常體系中的一種,在Java中還提供了大量的異常類(lèi),這些異常類(lèi)都是java.lang.Throwable類(lèi)的子類(lèi)。

接下來(lái)通過(guò)一張圖來(lái)學(xué)習(xí)Throwable類(lèi)的繼承體系,如圖3-22所示。

1650520843929_常見(jiàn)的異常類(lèi).png

圖3-22Throwable體系架構(gòu)圖

通過(guò)圖3-22可以看出,Throwable有兩個(gè)直接子類(lèi)Error和Exception,其中Error表示程序代碼中出現(xiàn)的錯(cuò)誤,Exception表示程序代碼中出現(xiàn)的異常。他們的區(qū)別在于,錯(cuò)誤是指僅靠程序本身是不能恢復(fù)執(zhí)行的,而異常是指通過(guò)程序本身可以處理的錯(cuò)誤。





猜你喜歡:

Java異常處理機(jī)制的原理和應(yīng)用【java面試】

Java異常之throws關(guān)鍵字用法介紹

Java中常見(jiàn)的異常類(lèi)型有哪些?

Java編譯異常與運(yùn)行異常分別是什么?

黑馬程序員java高級(jí)軟件工程師培訓(xùn)

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!