明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Java 異常處理一

[摘要]用異常來處理錯(cuò)誤   我們總是試圖避免在軟件程序中錯(cuò)誤的發(fā)生,但是它的存在卻是不幸的實(shí)事。無論怎樣,如果你能適當(dāng)?shù)奶幚礤e(cuò)誤,將會(huì)極大的改善程序的可讀性、可靠性以及可維護(hù)性。Java編程語(yǔ)言使用異常來處理錯(cuò)誤。這章主要講述在什么時(shí)候和怎樣使用異常來處理錯(cuò)誤。    什么是異常?    Java編程語(yǔ)...
用異常來處理錯(cuò)誤

  我們總是試圖避免在軟件程序中錯(cuò)誤的發(fā)生,但是它的存在卻是不幸的實(shí)事。無論怎樣,如果你能適當(dāng)?shù)奶幚礤e(cuò)誤,將會(huì)極大的改善程序的可讀性、可靠性以及可維護(hù)性。Java編程語(yǔ)言使用異常來處理錯(cuò)誤。這章主要講述在什么時(shí)候和怎樣使用異常來處理錯(cuò)誤。

   什么是異常?

   Java編程語(yǔ)言使用異常機(jī)制為程序提供了錯(cuò)誤處理的能力。一個(gè)異常是在程序執(zhí)行期間發(fā)生的一個(gè)事件,它使用正常的指令流中斷。

   捕獲或指定需求
   這段講述捕獲和處理異常。在討論中包括:try,catch和finally程序塊,還有異常鏈和日志。

   怎樣拋出異常
   這段講述異常拋出語(yǔ)句和Throwable類以及它的子類。

   有關(guān)未檢查的異常爭(zhēng)論
   因?yàn)镴ava編程語(yǔ)言不要求捕獲或指定運(yùn)行時(shí)異;蝈e(cuò)誤的方法,所以程序員會(huì)被誘導(dǎo)來編寫只拋出運(yùn)行時(shí)異常代碼,在這段中我們會(huì)解釋為什么不應(yīng)該被誘導(dǎo)。

   異常的好處
   在這段中,你將會(huì)學(xué)到更多的使用異常來管理錯(cuò)誤優(yōu)于傳統(tǒng)的錯(cuò)誤管理技術(shù)方面的知識(shí)。

   什么是異常?

   異常(exception)應(yīng)該是異常事件(exceptional event)的縮寫。

   異常定義:異常是一個(gè)在程序執(zhí)行期間發(fā)生的事件,它中斷正在執(zhí)行的程序的正常的指令流。

   當(dāng)在一個(gè)方法中發(fā)生錯(cuò)誤的時(shí)候,這個(gè)方法創(chuàng)建一個(gè)對(duì)象,并且把它傳遞給運(yùn)行時(shí)系統(tǒng)。這個(gè)對(duì)象被叫做異常對(duì)象,它包含了有關(guān)錯(cuò)誤的信息,這些信息包括錯(cuò)誤的類型和在程序發(fā)生錯(cuò)誤時(shí)的狀態(tài)。創(chuàng)建一個(gè)錯(cuò)誤對(duì)象并把它傳遞給運(yùn)行時(shí)系統(tǒng)被叫做拋出異常。

   一個(gè)方法拋出異常后,運(yùn)行時(shí)系統(tǒng)就會(huì)試著查找一些方法來處理它。這些處理異常的可能的方法的集合是被整理在一起的方法列表,這些方法能夠被發(fā)生錯(cuò)誤的方法調(diào)用。這個(gè)方法列表被叫做堆棧調(diào)用(callstack),調(diào)用方式如下圖所示(圖片參見附件)

   運(yùn)行時(shí)系統(tǒng)搜尋包含能夠處理異常的代碼塊的方法所請(qǐng)求的堆棧。這個(gè)代碼塊叫做異常處理器,搜尋首先從發(fā)生的方法開始,然后依次按著調(diào)用方法的倒序檢索調(diào)用堆棧。當(dāng)找到一個(gè)相應(yīng)的處理器時(shí),運(yùn)行時(shí)系統(tǒng)就把異常傳遞給這個(gè)處理器。一個(gè)異常處理器要適當(dāng)?shù)乜紴V拋出的異常對(duì)象的類型和異常處理器所處理的異常的類型是否匹配。異常被捕獲以后,異常處理器關(guān)閉。如果運(yùn)行時(shí)系統(tǒng)搜尋了這個(gè)方法的所有的調(diào)用堆棧,而沒有找到相應(yīng)的異常處理器,如下圖所示,運(yùn)行進(jìn)系統(tǒng)將終止執(zhí)行。(圖片參見附件)

   使用異常來管理錯(cuò)誤比傳統(tǒng)的錯(cuò)誤管理技術(shù)有一些優(yōu)勢(shì),你可以“異常的優(yōu)勢(shì)”一節(jié)學(xué)到更多的知識(shí)




標(biāo)簽:Java 異常處理一 

相關(guān)文章