金英華 張巖
摘 要:盡管Java語言的功能非常強(qiáng)大,自身帶有處理大多數(shù)異常的類庫,但設(shè)計(jì)項(xiàng)目編寫程序時(shí)還需要自定義一些異常類來滿足特定的需求。自定義異常類需要繼承Exception類和其子類,在需要的時(shí)用throw關(guān)鍵字引發(fā)即可。
關(guān)鍵詞:Java,自定義異常類,throws, throw
1、異常的定義
就是在程序運(yùn)行時(shí)由代碼所產(chǎn)生的不正常狀態(tài)。換句話來說,異常就是一個(gè)運(yùn)行錯(cuò)誤。
異常處理的關(guān)鍵詞有:try、catch、finally 、throw、throws,共5個(gè)。異常處理執(zhí)行流程,如圖1所示。
在自定義異常時(shí),通常繼承Exception或者子類實(shí)現(xiàn),也可以直接繼承Throwable,格式如下:
public ?class ?自定義異常 ?extends ? Exception{}
3、聲明異常(throw和throws)
在聲明自定義異常時(shí),通throw 和 throws格式如下
(1)返回值類型 ?方法名(參數(shù))throws ?異常類型
(2)throw 異常類型
throws是用來聲明一個(gè)異常,拋出所有可能的異常信息,throws只是異常聲明,但不做任何處理。而throw是用來引發(fā)對(duì)應(yīng)的catch語句來處理一個(gè)具體的異常類型。
4、自定義異常類的應(yīng)用
本實(shí)例是招聘某項(xiàng)工作,需要年齡在20歲~30歲之間,自定義異常類TooyoungerException和TooolderException,若低于20歲便處理TooyoungerException異常的程序,若高于30歲則處理TooolderException異常的程序,從命令行(控制臺(tái))輸入年齡值,然后對(duì)年齡進(jìn)行檢測(cè),合格,便打印合格信息;不合格打印,打印異常信息。
設(shè)計(jì)程序要實(shí)現(xiàn)的運(yùn)行結(jié)果,如圖2所示。
throw語句用于引發(fā)異常,程序執(zhí)行流程將在此處停止,不會(huì)繼續(xù)執(zhí)行后面的語句。throw語句將程序執(zhí)行控制權(quán)交給catch語句,由catch語句決定其后的流程。所以throw語句本質(zhì)上與break、continue、return等語句一樣,都屬于跳轉(zhuǎn)語句。
throws語句用于聲明可能產(chǎn)生的異常,以便于使用它的其他程序員能夠正確處理。
參考文獻(xiàn)
[1]李卓玲.Java程序設(shè)計(jì)實(shí)用教程.大連理工大學(xué)出版社,2005.
[2] 遲勇.Java語言程序設(shè)計(jì).大連理工大學(xué)出版社,2013.
[3] 遲勇.Java語言程序設(shè)計(jì)實(shí)驗(yàn)及實(shí)訓(xùn)指導(dǎo).大連理工大學(xué)出版社,2013.