亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間: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)資料,需要的朋友可以參考下

異常是什么

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

在java中異常由類來表示。

異常的分類

異常有一個頂層類Throwable;

Throwable派生出兩個子類Error,Exception;

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

Exception也分為兩種異常:編譯時異常和運行時異常。

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

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

運行時異常,這種異常全在(RunTimeException)這個類和其子類之下,編譯通過,運行報錯,這種異??梢越唤oJVM處理。

異常的處理方法

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

throw拋出異常

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

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

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

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

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

3.拋出的異常必須是Exception的或其子類,編譯時異常必須在后續(xù)代碼中處理,運行時異常可以交給JVM處理。

異常的聲明

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

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

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

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

異常的捕獲和處理

使用try-catch語句來對異常進行捕獲和處理。

使用格式:

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

注意事項:

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

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

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

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

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

finally

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

格式:

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

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

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

自定義異常類

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

格式:

class NameException extends 異常類{
	//
}

自定義異常類時一般繼承Exception 或 RunTimeException。

繼承Exception默認是編譯時異常,

繼承RunTimeException是運行時異常,

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

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

總結(jié) 

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

相關(guān)文章

  • SpringCloud分布式鏈路跟蹤的方法

    SpringCloud分布式鏈路跟蹤的方法

    這篇文章主要介紹了SpringCloud分布式鏈路跟蹤的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • idea自定義快捷代碼生成模板的方法

    idea自定義快捷代碼生成模板的方法

    這篇文章主要介紹了idea自定義快捷代碼生成模板的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java消息隊列RabbitMQ入門詳解

    Java消息隊列RabbitMQ入門詳解

    這篇文章主要介紹了Java消息隊列RabbitMQ入門詳解,RabbitMQ是使用Erlang語言開發(fā)的開源消息隊列系統(tǒng),基于AMQP協(xié)議 來實現(xiàn),AMQP的主要特征是面向消息、隊列、路由(包括點對點和發(fā)布 /訂閱)、可靠性、安全,需要的朋友可以參考下
    2023-07-07
  • java?System類和Arrays類詳解

    java?System類和Arrays類詳解

    這篇文章主要介紹了java?System類和Arrays類詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 超細講解Java調(diào)用python文件的幾種方式

    超細講解Java調(diào)用python文件的幾種方式

    有時候我們在寫java的時候需要調(diào)用python文件,下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用python文件的幾種方式,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Java日常練習(xí)題,每天進步一點點(49)

    Java日常練習(xí)題,每天進步一點點(49)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • SpringBoot應(yīng)用War包形式部署到外部Tomcat的方法

    SpringBoot應(yīng)用War包形式部署到外部Tomcat的方法

    這篇文章主要介紹了SpringBoot應(yīng)用War包形式部署到外部Tomcat的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java中父類和子類之間的轉(zhuǎn)換操作示例

    Java中父類和子類之間的轉(zhuǎn)換操作示例

    這篇文章主要介紹了Java中父類和子類之間的轉(zhuǎn)換操作,結(jié)合實例形式分析了Java中父類和子類之間的轉(zhuǎn)換相關(guān)原理、操作技巧與使用注意事項,需要的朋友可以參考下
    2020-05-05
  • Java圖片批量壓縮像素的實現(xiàn)方法

    Java圖片批量壓縮像素的實現(xiàn)方法

    我們開發(fā)中經(jīng)常會遇到原圖清晰度高,考慮到效率問題,我們不可能拿原圖進行顯示,服務(wù)端一般都要對圖片進行壓縮處理,然后發(fā)送給客戶端顯示,這篇文章主要給大家介紹了關(guān)于Java圖片批量壓縮像素的實現(xiàn)方法,需要的朋友可以參考下
    2021-12-12
  • java排序高級之選擇排序?qū)崿F(xiàn)方法

    java排序高級之選擇排序?qū)崿F(xiàn)方法

    這篇文章主要介紹了java排序高級之選擇排序?qū)崿F(xiàn)方法,較為全面的分析了選擇排序的原理與具體實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02

最新評論