java的異常處理是什么?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
什么是java異常處理
1、異常
異常處理,英文名為exceptional handling, 是代替日漸衰落的error code方法的新法,提供error code 所未能具體的優(yōu)勢(shì)。異常處理分離了接收和處理錯(cuò)誤代碼。這個(gè)功能理清了編程者的思緒,也幫助代碼增強(qiáng)了可讀性,方便了維護(hù)者的閱讀和理解。 異常處理(又稱(chēng)為錯(cuò)誤處理)功能提供了處理程序運(yùn)行時(shí)出現(xiàn)的任何意外或異常情況的方法。異常處理使用 try、catch 和 finally 關(guān)鍵字來(lái)嘗試可能未成功的操作,處理失敗,以及在事后清理資源。
2、異常處理機(jī)制
Java提供了更加優(yōu)秀的解決辦法:異常處理機(jī)制。
異常處理機(jī)制能讓程序在異常發(fā)生時(shí),按照代碼的預(yù)先設(shè)定的異常處理邏輯,針對(duì)性地處理異常,讓程序盡大可能恢復(fù)正常并繼續(xù)執(zhí)行,且保持代碼的清晰。
Java中的異常可以是函數(shù)中的語(yǔ)句執(zhí)行時(shí)引發(fā)的,也可以是程序員通過(guò)throw 語(yǔ)句手動(dòng)拋出的,只要在Java程序中產(chǎn)生了異常,就會(huì)用一個(gè)對(duì)應(yīng)類(lèi)型的異常對(duì)象來(lái)封裝異常,JRE就會(huì)試圖尋找異常處理程序來(lái)處理異常。
Throwable類(lèi)是Java異常類(lèi)型的頂層父類(lèi),一個(gè)對(duì)象只有是 Throwable 類(lèi)的(直接或者間接)實(shí)例,他才是一個(gè)異常對(duì)象,才能被異常處理機(jī)制識(shí)別。JDK中內(nèi)建了一些常用的異常類(lèi),我們也可以自定義異常。
3、異常的處理:
異常的處理分為消極的處理(自己處理不了,就往調(diào)用它的地方上拋throws,異常沒(méi)有解決,只是拋出)和積極處理(異常捕獲,捕捉異常通過(guò)try-catch語(yǔ)句或者try-catch-finally語(yǔ)句實(shí)現(xiàn))
a) 消極的處理:
語(yǔ)法:
public void m1() throws 異常類(lèi)名1,異常類(lèi)名2{}
特點(diǎn):相當(dāng)于推卸責(zé)任,最終問(wèn)題依然無(wú)法得到解決。
允許編譯通過(guò)。
當(dāng)上拋的異常為非運(yùn)行(已檢查)時(shí)異常時(shí),調(diào)用此方法的調(diào)用者必須處理。
當(dāng)上拋的異常為運(yùn)行(未檢查)時(shí)異常時(shí),可以處理可以不處理。
b) 積極的處理:(異常捕獲)
將異常直接捕獲,并且做出處理
語(yǔ)法:
try{ //異常代碼 }catch(異常類(lèi)名 引用名){ //當(dāng)異常產(chǎn)生執(zhí)行的代碼 }
try 后的catch代碼塊 只能匹配成功一個(gè)
catch后聲明的異常為父類(lèi)時(shí),它能夠捕捉的異常為它本身+所有子類(lèi)異常(多態(tài)的體現(xiàn))
注意:catch代碼塊捕獲異常時(shí),子類(lèi)異常必須定義在父類(lèi)異常前面,否則會(huì)編譯出錯(cuò)
finally代碼塊:一定會(huì)執(zhí)行此代碼塊中的代碼,常用來(lái)關(guān)閉資源,
try{ }catch(){ }finally{ //無(wú)論是否產(chǎn)生異常,一定會(huì)去執(zhí)行的代碼 }
注意:finally代碼塊中不要定義return語(yǔ)句
4、異常的特性:
應(yīng)用程序遇到異常情況(如被零除情況或內(nèi)存不足警告)時(shí),就會(huì)產(chǎn)生異常。
發(fā)生異常時(shí),控制流立即跳轉(zhuǎn)到關(guān)聯(lián)的異常處理程序(如果存在)。
如果給定異常沒(méi)有異常處理程序,則程序?qū)⑼V箞?zhí)行,并顯示一條錯(cuò)誤信息。
可能導(dǎo)致異常的操作通過(guò) try 關(guān)鍵字來(lái)執(zhí)行。
異常處理程序是在異常發(fā)生時(shí)執(zhí)行的代碼塊。在 C# 中,catch 關(guān)鍵字用于定義異常處理程序。
程序可以使用 throw 關(guān)鍵字顯式地引發(fā)異常。
異常對(duì)象包含有關(guān)錯(cuò)誤的詳細(xì)信息,其中包括調(diào)用堆棧的狀態(tài)以及有關(guān)錯(cuò)誤的文本說(shuō)明。
即使引發(fā)了異常,finally 塊中的代碼也會(huì)執(zhí)行,從而使程序可以釋放資源。
分享題目:java的異常處理是什么-創(chuàng)新互聯(lián)
文章鏈接:http://aaarwkj.com/article26/cchdjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、App設(shè)計(jì)、Google、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容