卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Java異常處理機(jī)制及自定義異常

我們總是試圖避免在軟件程序中錯(cuò)誤的發(fā)生,但是百分之百?zèng)]有錯(cuò)誤的程序是不存在的。無(wú)論怎樣,如果我們能適當(dāng)?shù)奶幚礤e(cuò)誤,將會(huì)極大的改善程序的可讀性、可靠性以及可維護(hù)性。Java編程語(yǔ)言使用異常來(lái)處理錯(cuò)誤。

我們總是試圖避免在軟件程序中錯(cuò)誤的發(fā)生,但是百分之百?zèng)]有錯(cuò)誤的程序是不存在的。無(wú)論怎樣,如果我們能適當(dāng)?shù)奶幚礤e(cuò)誤,將會(huì)極大的改善程序的可讀性、可靠性以及可維護(hù)性。Java編程語(yǔ)言使用異常來(lái)處理錯(cuò)誤。

異常處理程序的基本形式如下:

method() throws ExceptionType1, ExceptionType2, …{
    try {
        // 程序塊
    } catch (ExceptionType1 e) {
        // 對(duì)ExceptionType1的處理
    } catch (ExceptionType2 e) {
        // 對(duì)ExceptionType2的處理,處理了一部分,throw(e); 再拋出這個(gè)“異?!苯o上層的調(diào)用者
    } finally {
        // 總是要執(zhí)行的語(yǔ)句
    }
}

異常對(duì)象

每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類(lèi)或其它子類(lèi)的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。Throwable類(lèi)有兩個(gè)標(biāo)準(zhǔn)子類(lèi):錯(cuò)誤類(lèi)()和異常類(lèi)()。

異常類(lèi)的繼承關(guān)系

在實(shí)際的程序開(kāi)發(fā)中,異常無(wú)處不在,并且種類(lèi)繁多。區(qū)分什么情況下會(huì)出現(xiàn)什么樣的異常是十分必要的。異常可以根據(jù)發(fā)生的原因進(jìn)行分類(lèi),以及編譯時(shí)對(duì)異常的檢查情況,分為可檢測(cè)異常和不可檢測(cè)異常兩種。

異常捕獲

Java的異常處理是通過(guò)try、catch、throw、throws和finally這5個(gè)關(guān)鍵詞來(lái)實(shí)現(xiàn)的。通過(guò)在代碼中使用try選定監(jiān)控異常的范圍,然后使用catch捕獲異常,最終可以對(duì)異常進(jìn)行處理。若在try塊中拋出的異常沒(méi)有被捕獲,Java將退出當(dāng)前方法并向上層調(diào)用者傳遞異常。

創(chuàng)建自定義異常

有時(shí)候Java類(lèi)庫(kù)中提供的異常處理類(lèi)無(wú)法滿足特定需求,需要自定義異常。創(chuàng)建自定義異常非常簡(jiǎn)單,只需要定義一個(gè)繼承自Exception的新類(lèi)即可。例如,如果需要提示水位過(guò)高的異常,可以創(chuàng)建一個(gè)自定義異常類(lèi),如下所示:

class MyException extends Exception {
    private int i;
    MyException(int a) {
        i  a;
    }
    public String toString() {
        return "水位過(guò)高";
    }
}

通過(guò)自定義異常,可以更靈活地處理程序中出現(xiàn)的特殊情況,提高程序的可維護(hù)性和擴(kuò)展性。

標(biāo)簽: