教育行業(yè)A股IPO第一股(股票代碼 003032)

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

Java培訓(xùn):面向?qū)ο髏ry的用法

更新時(shí)間:2022年10月20日13時(shí)46分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  在文件4-24中,由于發(fā)生了異常導(dǎo)致程序立即終止,因此程序無(wú)法繼續(xù)向下執(zhí)行。為了解決異常,Java提供了對(duì)異常進(jìn)行處理的方式——異常捕獲。異常捕獲使用try...cathch語(yǔ)句實(shí)現(xiàn),try...cathch具體語(yǔ)法格式如下:

try{
    //程序代碼塊
}catch (ExceptionType (Exception類(lèi)及其子類(lèi)) e) {
    //對(duì)ExceptionType的處理
}

  上述語(yǔ)法格式中,在try代碼塊中編寫(xiě)可能發(fā)生異常的Java語(yǔ)句,在catch代碼塊中編寫(xiě)針對(duì)異常進(jìn)行處理的代碼。當(dāng)try代碼塊中的程序發(fā)生了異常,系統(tǒng)會(huì)將異常的信息封裝成一個(gè)異常對(duì)象,并將這個(gè)對(duì)象傳遞給catch代碼塊進(jìn)行處理。catch代碼塊需要一個(gè)參數(shù)指明它所能接收的異常類(lèi)型,這個(gè)參數(shù)的類(lèi)型必須是Exception類(lèi)或其子類(lèi)。

  下面使用try...catch語(yǔ)句對(duì)文件4-24中出現(xiàn)的異常進(jìn)行捕獲,如文件4-25所示。

  文件4-25 Example25.java

public class Example25 {
    public static void main (String[] args) {
        // 下面的代碼定義了一個(gè)try...catch語(yǔ)句用于捕獲異常
        try {
            int result = divide (4, 0);            //調(diào)用divide()方法
            System.out.println (result);
        }catch (Exception e) {         //對(duì)異常進(jìn)行處理
            System.out.println ("捕獲的異常信息為: " + e.getMessage ());
        }
        System.out.println ("程序繼續(xù)向下執(zhí)行...");
    }
    //下面的方法實(shí)現(xiàn)了兩個(gè)整數(shù)相除
    public static int divide (int x, int y) {
        int result = x / y;           //定義一個(gè)變量result記錄兩個(gè)數(shù)相除的結(jié)果
        return result;                //將結(jié)果返回
    }
}

  在文件4-25中,第4~9行代碼是對(duì)可能發(fā)生異常的代碼用try...catch語(yǔ)句進(jìn)行了處理。在try代碼塊中發(fā)生除0異常外,程序會(huì)通過(guò)catch語(yǔ)句捕獲異常,第8行代碼在catch語(yǔ)句中通過(guò)調(diào)用Exception對(duì)象的getMessage()方法,返回異常信息“/by zero”。catch代碼塊對(duì)異常處理完畢,程序仍會(huì)向下執(zhí)行,而不會(huì)終止程序。

  需要注意的是,在try代碼塊中,發(fā)生異常語(yǔ)句后面的代碼是不會(huì)被執(zhí)行的,如文件4-25中第6行代碼的打印語(yǔ)句就沒(méi)有執(zhí)行。

  在程序中,有時(shí)候會(huì)希望有些語(yǔ)句無(wú)論程序是否發(fā)生異常都要執(zhí)行,這時(shí)就可以在try...catch語(yǔ)句后加一個(gè)finally代碼塊。

0 分享到:
和我們?cè)诰€交談!