溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中的異常處理

發(fā)布時(shí)間:2020-06-17 16:37:03 來源:億速云 閱讀:147 作者:元一 欄目:編程語言

一、Java異常處理是什么?

程序運(yùn)行時(shí),發(fā)生的不被期望的事件,它阻止了程序按照程序員的預(yù)期正常執(zhí)行,這就是異常。異常發(fā)生時(shí),是任程序自生自滅,立刻退出終止,還是輸出錯(cuò)誤給用戶?或者用C語言風(fēng)格:用函數(shù)返回值作為執(zhí)行狀態(tài)?。

Java提供了更加優(yōu)秀的解決辦法:異常處理機(jī)制。

異常處理機(jī)制能讓程序在異常發(fā)生時(shí),按照代碼的預(yù)先設(shè)定的異常處理邏輯,針對(duì)性地處理異常,讓程序盡最大可能恢復(fù)正常并繼續(xù)執(zhí)行,且保持代碼的清晰。

Java中的異??梢允呛瘮?shù)中的語句執(zhí)行時(shí)引發(fā)的,也可以是程序員通過throw 語句手動(dòng)拋出的,只要在Java程序中產(chǎn)生了異常,就會(huì)用一個(gè)對(duì)應(yīng)類型的異常對(duì)象來封裝異常,JRE就會(huì)試圖尋找異常處理程序來處理異常。

Throwable類是Java異常類型的頂層父類,一個(gè)對(duì)象只有是 Throwable 類的(直接或者間接)實(shí)例,他才是一個(gè)異常對(duì)象,才能被異常處理機(jī)制識(shí)別。JDK中內(nèi)建了一些常用的異常類,我們也可以自定義異常。

二、異常類從哪里來?
有兩個(gè)來源,一是Java語言本身定義的一些基本異常類型,二是用戶通過繼承Exception類或者其子類自己定義的異常。Exception 類及其子類是 Throwable 的一種形式,它指出了合理的應(yīng)用程序想要捕獲的條件。
三、異常的對(duì)象從哪里來呢?
有兩個(gè)來源,一是Java運(yùn)行時(shí)環(huán)境自動(dòng)拋出系統(tǒng)生成的異常,而不管你是否愿意捕獲和處理,它總要被拋出!比如除數(shù)為0的異常。二是程序員自己拋出的異常,這個(gè)異??梢允浅绦騿T自己定義的,也可以是Java語言中定義的,用throw 關(guān)鍵字拋出異常,這種異常常用來向調(diào)用者匯報(bào)異常的一些信息。
四、java異常處理方法
Java異常處理通過5個(gè)關(guān)鍵字try、catch、throw、throws、finally進(jìn)行管理。基本過程是用try語句塊包住要監(jiān)視的語句,如果在try語句塊內(nèi)出現(xiàn)異常,則異常會(huì)被拋出,你的代碼在catch語句塊中可以捕獲到這個(gè)異常并做處理;還有以部分系統(tǒng)生成的異常在Java運(yùn)行時(shí)自動(dòng)拋出。你也可以通過throws關(guān)鍵字在方法上聲明該方法要拋出異常,然后在方法內(nèi)部通過throw拋出異常對(duì)象。都是可以的,方法很多。
catch語句可以有多個(gè),用來匹配多個(gè)異常,匹配上多個(gè)中一個(gè)后,執(zhí)行catch語句塊時(shí)候僅僅執(zhí)行匹配上的異常。并且在catch代碼塊中可以直接引用。這一點(diǎn)非常非常的特殊和重要!
Java異常處理的目的是提高程序的健壯性,你可以在catch和finally代碼塊中給程序一個(gè)修正機(jī)會(huì),使得程序不因異常而終止或者流程發(fā)生以外的改變。 Java異常處理是Java語言的一大特色,也是個(gè)難點(diǎn),掌握異常處理可以讓寫的代碼更健壯和易于維護(hù),希望上文提到的知識(shí)點(diǎn)能幫到大家。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI