Java中兩種拋出異常的方式示例詳解
Java中兩種拋出異常的方式
在Java中有兩種拋出異常的方式,一種是throw,直接拋出異常,另一種是throws,間接拋出異常。
直接拋出異常是在方法中用關(guān)鍵字throw引發(fā)明確的異常。當(dāng)throw被執(zhí)行時(shí),其后語句將不再執(zhí)行,執(zhí)行流程將直接尋找catch語句并進(jìn)行匹配。這種錯(cuò)誤不是出錯(cuò)產(chǎn)生,而是人為的拋出。throw拋出異常的格式為
throw ThrowableObject; //例如: throw new ArithmeticException();
在Java的異常處理模塊中,所有拋出的異常都必須要有對應(yīng)的“異常處理模塊”。也就是說,如果在程序中拋出一個(gè)異常,那么在方法中就必須要捕獲這個(gè)異常。
public class Test { ??? public static void main(String[] args) { ??????? System.out.print("now "); ??????? try{ ??????????? System.out.print("is "); ??????????? throw new NullPointerException(); ??????? }catch (NullPointerException e){ ??????????? System.out.print("the "); ??????? } ??????? System.out.print("time"); ??? } } now is the time
如果一個(gè)方法可能導(dǎo)致一個(gè)異常但不處理它,此時(shí)要求在方法聲明中包含throws子句,通知潛在調(diào)用者,在發(fā)生異常時(shí)沿著調(diào)用層次向上傳遞,由調(diào)用它的方法來處理這些異常,這類異常稱為申明異常。實(shí)例如下
public class Test { ??? private static void p() throws ArithmeticException{ ??????? int i; ??????? i = 4/0; ??? } ??? public static void main(String[] args) { ??????? try { ??????????? p(); ??????? }catch (ArithmeticException e){ ??????????? System.out.println("除0錯(cuò)誤"); ??????? } ??? } }
在本實(shí)例中,語句I = 4/0;將產(chǎn)生異常,產(chǎn)生異常后方法p()并不進(jìn)行處理,而是由調(diào)用p()的main方法進(jìn)行處理。
到此這篇關(guān)于Java中兩種拋出異常的方式的文章就介紹到這了,更多相關(guān)Java拋出異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java設(shè)計(jì)模式之單一職責(zé)原則精解
設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設(shè)計(jì)模式七大原則之一的單一職責(zé)原則2022-02-02基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能
這篇文章主要為大家詳細(xì)介紹了基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05繼承WebMvcConfigurationSupport后自動配置不生效及如何配置攔截器
這篇文章主要介紹了繼承WebMvcConfigurationSupport后自動配置不生效及如何配置攔截器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Java安全之Filter權(quán)限繞過的實(shí)現(xiàn)
在一些需要挖掘一些無條件RCE中,大部分類似于一些系統(tǒng)大部分地方都做了權(quán)限控制的,而這時(shí)候想要利用權(quán)限繞過就顯得格外重要,本文就介紹了如何實(shí)現(xiàn),一起來了解一下2021-05-05關(guān)于Feign調(diào)用服務(wù)Headers傳參問題
這篇文章主要介紹了關(guān)于Feign調(diào)用服務(wù)Headers傳參問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03