Java基礎(chǔ)之throw和throws的示例詳解
總結(jié)來說,throw
是用來拋出一個(gè)具體的異常實(shí)例,而throws
是用來聲明方法可能會拋出哪些類型的異常,是對調(diào)用者的一種通知和要求。
1. throw
- 作用:
throw
關(guān)鍵字用于在方法體內(nèi)實(shí)際拋出一個(gè)異常實(shí)例。當(dāng)程序運(yùn)行到throw
語句時(shí),指定的異常會被創(chuàng)建并拋出,立即終止當(dāng)前方法的執(zhí)行,并將控制權(quán)轉(zhuǎn)移給包含該方法的調(diào)用者的異常處理機(jī)制。 - 使用時(shí)機(jī): 當(dāng)檢測到某種錯誤條件或異常情況時(shí),在方法內(nèi)部使用
throw
來拋出一個(gè)異常對象,這個(gè)對象可以是系統(tǒng)預(yù)定義的異常類的實(shí)例,也可以是自定義異常類的實(shí)例。 - 特點(diǎn):
throw
總是伴隨著一個(gè)異常實(shí)例,且其后的代碼不會被執(zhí)行,因?yàn)橐坏伋霎惓#?dāng)前的代碼路徑就會被中斷。
2. throws
- 作用:
throws
關(guān)鍵字用于聲明方法可能拋出的異常類型,它出現(xiàn)在方法簽名之后。這告知調(diào)用者該方法執(zhí)行時(shí)可能會遇到的異常情況,要求調(diào)用者要么處理這些異常(使用try-catch
語句塊),要么繼續(xù)向上層方法拋出這些異常。 - 使用時(shí)機(jī): 當(dāng)一個(gè)方法無法處理或不打算處理某些異常時(shí),可以在方法聲明中使用
throws
來聲明這些異常。這樣做可以強(qiáng)制調(diào)用者意識到潛在的異常風(fēng)險(xiǎn)并做出相應(yīng)的處理準(zhǔn)備。 - 特點(diǎn):
throws
后面可以跟隨一個(gè)或多個(gè)異常類名,用逗號分隔,表示該方法可能拋出多種類型的異常。并且,throws
聲明并不意味著異常一定會被拋出,它只是聲明了一種可能性。
3. 為什么有時(shí)候異常必須用throws聲明而有時(shí)候不用?
如圖
(圖一)
(圖二)
為什么會出現(xiàn)這種情況呢?其實(shí)了解過Java異常的人都知道,異常分為兩大類,一類是運(yùn)行時(shí)異常,一類是非運(yùn)行時(shí)異常。運(yùn)行時(shí)異常只能在運(yùn)行時(shí)識別,所以編譯器無法識別運(yùn)行時(shí)異常,就算不throws出異常也是能編譯通過的,而非運(yùn)行時(shí)異常如果不throws出來,編譯器就會識別到并報(bào)錯。
到此這篇關(guān)于Java基礎(chǔ):throw和throws的詳解的文章就介紹到這了,更多相關(guān)Java throw和throws內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Java驗(yàn)證jwt token代碼實(shí)例
這篇文章主要介紹了基于Java驗(yàn)證jwt token代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12java數(shù)據(jù)結(jié)構(gòu)之插入排序
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之插入排序的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11Java8函數(shù)式接口UnaryOperator用法示例
這篇文章主要介紹了Java8函數(shù)式接口UnaryOperator用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Spring?Boot?+?Canal?實(shí)現(xiàn)數(shù)據(jù)庫實(shí)時(shí)監(jiān)控
這篇文章主要介紹了Spring?Boot?+?Canal實(shí)現(xiàn)數(shù)據(jù)庫實(shí)時(shí)監(jiān)控,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08詳解SpringMVC組件之HandlerMapping(一)
這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(一),HandlerMapping組件是Spring?MVC核心組件,用來根據(jù)請求的request查找對應(yīng)的Handler,在Spring?MVC中,有各式各樣的Web請求,每個(gè)請求都需要一個(gè)對應(yīng)的Handler來處理,需要的朋友可以參考下2023-08-08