最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaSE異常Exception處理方法以及自定義

 更新時(shí)間:2024年07月18日 09:39:39   作者:鴿鴿程序猿  
網(wǎng)絡(luò)異常exception是指在網(wǎng)絡(luò)通信過程中出現(xiàn)的異常情況,這些異??赡苁怯捎诰W(wǎng)絡(luò)連接不穩(wěn)定、網(wǎng)絡(luò)故障、服務(wù)器故障、網(wǎng)絡(luò)擁堵等原因?qū)е碌?這篇文章主要給大家介紹了關(guān)于JavaSE異常Exception處理方法以及自定義的相關(guān)資料,需要的朋友可以參考下

異常是什么

異常就是程序在進(jìn)行時(shí)的不正常行為,就像之前數(shù)組時(shí)會(huì)遇到空指針異常(NullPointerException),數(shù)組越界異常(ArrayIndexOutOfBoundsException)等等。

在java中異常由類來表示。

異常的分類

異常有一個(gè)頂層類Throwable;

Throwable派生出兩個(gè)子類Error,Exception;

Error指的是Java虛擬機(jī)無法解決的嚴(yán)重問題,例如遞歸時(shí)一直開辟棧,導(dǎo)致棧溢出的錯(cuò)誤。

Exception也分為兩種異常:編譯時(shí)異常和運(yùn)行時(shí)異常。

編譯時(shí)異常,這種異常顧名思義是在編譯時(shí)候就會(huì)發(fā)生,這種異常要在程序中捕獲聲明才能讓程序通過。

例如在比較器文章這篇中要實(shí)現(xiàn)clone方法時(shí)要通過throws關(guān)鍵字聲明CloneNotSupportedException異常才能正常使用。

運(yùn)行時(shí)異常,這種異常全在(RunTimeException)這個(gè)類和其子類之下,編譯通過,運(yùn)行報(bào)錯(cuò),這種異??梢越唤oJVM處理。

異常的處理方法

異常的處理一般使用throw、try、catch、?nally、throws這五個(gè)關(guān)鍵字。

throw拋出異常

在程序執(zhí)行時(shí),該語句引發(fā)異常,此時(shí)就可以通過throw拋出異常來告訴程序員原因。

一般格式為throw new 異常類名("異常產(chǎn)生的原因"); 例如我們進(jìn)行方法傳參為數(shù)組時(shí)參數(shù)是null拋出空指針異常:

public void printArray(int[] array){
	if(null == array){
		throw new NullPointException("數(shù)組傳參為空null");
	}else{
		//
	}
}

注意事項(xiàng):1.異常的拋出必須是在方法的內(nèi)部

2.一旦異常拋出成功之后,在該語句之后的代碼就不會(huì)執(zhí)行了。就像上面寫的else里面的語句不會(huì)執(zhí)行了。

3.拋出的異常必須是Exception的或其子類,編譯時(shí)異常必須在后續(xù)代碼中處理,運(yùn)行時(shí)異??梢越唤oJVM處理。

異常的聲明

異常的聲明就是告訴這個(gè)方法會(huì)報(bào)哪些異常,然后在這個(gè)方法內(nèi)部不用對(duì)異常處理,讓后面使用這個(gè)方法時(shí)對(duì)異常進(jìn)行處理。
一般格式:

修飾符 返回值類型 方法名(參數(shù)表列) throws 異常類型1,異常類型2...{
 
}

注意事項(xiàng):1.格式不能變,一定是將聲明放在參數(shù)表列后面,可以多個(gè)異常同時(shí)聲明

2.聲明的異常必須是Exception的或其子類。如果聲明的異常是具有父子類關(guān)系,只聲明父類也可以

異常的捕獲和處理

使用try-catch語句來對(duì)異常進(jìn)行捕獲和處理。

使用格式:

try{
	//會(huì)產(chǎn)生異常的代碼
}catch(異常類型1 e){
	//對(duì)異常的處理代碼
}catch(異常類型2 e){
	//對(duì)異常的處理代碼
}

注意事項(xiàng):

1.像前面一樣如果try中拋出異常后還有代碼就不會(huì)執(zhí)行,

2.catch語句之間就像if-else語句一樣,只會(huì)執(zhí)行其中一個(gè)異常,

3.如果try中拋出異常被catch捕獲并處理了那就會(huì)執(zhí)行try-catch之后的語句,如果沒有捕獲到就不會(huì)執(zhí)行

4.如果兩個(gè)異常是父子類,一定要把子類異常catch放在前面

5.如果兩個(gè)異常處理方式一樣也可以用單豎杠 | 來處理catch(異常類型1 | 異常類型2 e){}但是這樣就不知道具體是哪個(gè)異常了。

finally

這個(gè)語句是跟try-catch語句一起用的,這個(gè)語句的特點(diǎn)就是比catch先執(zhí)行,里面常放一些資源關(guān)閉代碼

格式:

try{
	//會(huì)產(chǎn)生異常的代碼
}catch(異常類型1 e){
	//對(duì)異常的處理代碼
}catch(異常類型2 e){
	//對(duì)異常的處理代碼
}finally{
	//資源關(guān)閉代碼
}

try 或者 catch 中如果有 return 會(huì)在這個(gè) return 之前執(zhí)行 ?nally. 但是如果

?nally 中也存在 return 語句, 那么就會(huì)執(zhí)行 ?nally 中的 return, 從而不會(huì)執(zhí)行到 try 中原有的 return.

自定義異常類

異常本質(zhì)就是一個(gè)類,然后繼承于已有的異常類。在寫自己的異常類時(shí)類名最后一個(gè)單詞使用Exception更加規(guī)范

格式:

class NameException extends 異常類{
	//
}

自定義異常類時(shí)一般繼承Exception 或 RunTimeException。

繼承Exception默認(rèn)是編譯時(shí)異常,

繼承RunTimeException是運(yùn)行時(shí)異常,

在自定義異常類中一般會(huì)實(shí)現(xiàn)如下的一個(gè)構(gòu)造方法,來報(bào)出什么原因?qū)е庐惓#?/p>

public NameException(String message) {
        super(message);
   }

總結(jié) 

到此這篇關(guān)于JavaSE異常Exception處理方法以及自定義的文章就介紹到這了,更多相關(guān)JavaSE異常Exception內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenJDK源碼解析之System.out.println詳解

    OpenJDK源碼解析之System.out.println詳解

    這篇文章主要介紹了OpenJDK源碼解析之System.out.println詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • spring?mybatis環(huán)境常量與枚舉轉(zhuǎn)換示例詳解

    spring?mybatis環(huán)境常量與枚舉轉(zhuǎn)換示例詳解

    這篇文章主要為大家介紹了spring?mybatis環(huán)境常量與枚舉轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 在IntelliJ?IDEA中配置Git過程

    在IntelliJ?IDEA中配置Git過程

    本文介紹了在IntelliJ?IDEA中配置Git的全過程,包括安裝Git、在IDEA中配置Git路徑以及在項(xiàng)目中啟用Git,具體步驟分為三步:安裝Git,配置IDEA中的Git路徑,并在項(xiàng)目中啟用Git,最后,還介紹了基本操作與進(jìn)階配置,如提交代碼、推送/拉取代碼、設(shè)置Git用戶名等
    2026-04-04
  • Java中的常用輸入輸出語句的操作代碼

    Java中的常用輸入輸出語句的操作代碼

    這篇文章主要介紹了Java中的常用輸入輸出語句的操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Spring Boot整合Mybatis Plus和Swagger2的教程詳解

    Spring Boot整合Mybatis Plus和Swagger2的教程詳解

    這篇文章主要介紹了Spring Boot整合Mybatis Plus和Swagger2的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Spring Security無法調(diào)用接口錯(cuò)誤的問題解決

    Spring Security無法調(diào)用接口錯(cuò)誤的問題解決

    記錄一下之前在寫程序的時(shí)候遇到的問題,Spring Security無法調(diào)用接口錯(cuò)誤的問題,本文就來介紹一下解決方法,感興趣的可以了解一下
    2023-08-08
  • Spring?請(qǐng)求之傳遞?JSON?數(shù)據(jù)的操作方法

    Spring?請(qǐng)求之傳遞?JSON?數(shù)據(jù)的操作方法

    JSON 就是一種數(shù)據(jù)格式,有自己的格式和語法,使用文本表示一個(gè)對(duì)象或數(shù)組的信息,因此 JSON 本質(zhì)是字符串,主要負(fù)責(zé)在不同的語言中數(shù)據(jù)傳遞和交換,這篇文章主要介紹了Spring請(qǐng)求之傳遞JSON數(shù)據(jù)的相關(guān)知識(shí),需要的朋友可以參考下
    2025-04-04
  • spring cloud config分布式配置中心的高可用問題

    spring cloud config分布式配置中心的高可用問題

    本文給大家介紹spring cloud config分布式配置中心的高可用問題,通過整合Eureka來實(shí)現(xiàn)配置中心的高可用,需要的朋友參考下本文
    2018-01-01
  • Java實(shí)現(xiàn)自動(dòng)把報(bào)表插入到word文檔中

    Java實(shí)現(xiàn)自動(dòng)把報(bào)表插入到word文檔中

    在很多業(yè)務(wù)場(chǎng)景中需要在 word 文檔中嵌入報(bào)表,這篇文章主要為大家介紹了如何使用Java實(shí)現(xiàn)自動(dòng)把報(bào)表插入到word文檔中,需要的可以參考下
    2024-12-12
  • java實(shí)現(xiàn)桌球小游戲

    java實(shí)現(xiàn)桌球小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)桌球小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評(píng)論

松江区| 元阳县| 壤塘县| 鹿邑县| 宜城市| 宣威市| 徐水县| 邢台市| 开化县| 吉林市| 长垣县| 吉安市| 七台河市| 延安市| 华坪县| 济源市| 凤冈县| 乌什县| 鄂伦春自治旗| 甘孜县| 长岛县| 临西县| 武威市| 宁强县| 永定县| 汽车| 遂昌县| 嘉峪关市| 齐齐哈尔市| 临朐县| 云林县| 申扎县| 灌云县| 张家口市| 康保县| 洪江市| 新晃| 招远市| 金川县| 军事| 加查县|