Java中兩種拋出異常的方式示例詳解
Java中兩種拋出異常的方式
在Java中有兩種拋出異常的方式,一種是throw,直接拋出異常,另一種是throws,間接拋出異常。
直接拋出異常是在方法中用關(guān)鍵字throw引發(fā)明確的異常。當(dāng)throw被執(zhí)行時(shí),其后語(yǔ)句將不再執(zhí)行,執(zhí)行流程將直接尋找catch語(yǔ)句并進(jìn)行匹配。這種錯(cuò)誤不是出錯(cuò)產(chǎn)生,而是人為的拋出。throw拋出異常的格式為
throw ThrowableObject; //例如: throw new ArithmeticException();
在Java的異常處理模塊中,所有拋出的異常都必須要有對(duì)應(yīng)的“異常處理模塊”。也就是說(shuō),如果在程序中拋出一個(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)用它的方法來(lái)處理這些異常,這類(lèi)異常稱(chēng)為申明異常。實(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í)例中,語(yǔ)句I = 4/0;將產(chǎn)生異常,產(chǎn)生異常后方法p()并不進(jìn)行處理,而是由調(diào)用p()的main方法進(jìn)行處理。
到此這篇關(guān)于Java中兩種拋出異常的方式的文章就介紹到這了,更多相關(guān)Java拋出異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot實(shí)現(xiàn)多數(shù)據(jù)源連接和切換的解決方案
文章介紹了在SpringBoot中實(shí)現(xiàn)多數(shù)據(jù)源連接和切換的幾種方案,并詳細(xì)描述了一個(gè)使用AbstractRoutingDataSource的實(shí)現(xiàn)步驟,感興趣的朋友一起看看吧2025-01-01
springboot項(xiàng)目打包成jar包的圖文教程
有時(shí)候我們會(huì)用IDEA來(lái)開(kāi)發(fā)一些小工具,需要打成可運(yùn)行的JAR包,這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目打包成jar包的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
java線性表的存儲(chǔ)結(jié)構(gòu)及其代碼實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記第一篇,線性表的存儲(chǔ)結(jié)構(gòu)及其代碼實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
使用Spring掃描Mybatis的mapper接口的三種配置
這篇文章主要介紹了使用Spring掃描Mybatis的mapper接口的三種配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Linux?Ubuntu系統(tǒng)下配置JDK環(huán)境、MySQL環(huán)境全過(guò)程
眾所周知Ubuntu是一種基于Linux的操作系統(tǒng),它提供了一個(gè)穩(wěn)定、安全和易于使用的環(huán)境,下面這篇文章主要給大家介紹了關(guān)于Linux?Ubuntu系統(tǒng)下配置JDK環(huán)境、MySQL環(huán)境的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
SpringBoot整合kaptcha驗(yàn)證碼過(guò)程(復(fù)制粘貼即可用)
本文介紹了如何在Spring Boot項(xiàng)目中整合Kaptcha驗(yàn)證碼實(shí)現(xiàn),通過(guò)配置和編寫(xiě)相應(yīng)的Controller、工具類(lèi)以及前端頁(yè)面,可以生成和驗(yàn)證驗(yàn)證碼,文中指出了在項(xiàng)目結(jié)構(gòu)上的注意事項(xiàng),避免因包結(jié)構(gòu)問(wèn)題導(dǎo)致驗(yàn)證碼無(wú)法顯示2025-01-01

