java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧

java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧

ID:30769183

大?。?47.75 KB

頁(yè)數(shù):11頁(yè)

時(shí)間:2019-01-03

java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧_第1頁(yè)
java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧_第2頁(yè)
java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧_第3頁(yè)
java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧_第4頁(yè)
java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧_第5頁(yè)
資源描述:

《java異常處理和設(shè)計(jì)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、Java異常處理和設(shè)計(jì)-編程開(kāi)發(fā)技術(shù)Java異常處理和設(shè)計(jì)原文出處:海子在程序設(shè)計(jì)中,進(jìn)行異常處理是非常關(guān)鍵和重要的一部分。一個(gè)程序的異常處理框架的好壞直接影響到整個(gè)項(xiàng)目的代碼質(zhì)量以及后期維護(hù)成木和難度。試想一下,如果一個(gè)項(xiàng)目從頭到尾沒(méi)冇考慮過(guò)異常處理,當(dāng)程序出錯(cuò)從哪里尋找出錯(cuò)的根源?但是如果一個(gè)項(xiàng)目異常處理設(shè)計(jì)地過(guò)多,乂會(huì)嚴(yán)重影響到代碼質(zhì)量以及程序的性能。因此,如何高效簡(jiǎn)潔地設(shè)計(jì)異常處理是一門(mén)藝術(shù),木文下面先講述Java異常機(jī)制最基礎(chǔ)的知識(shí),然后給出在進(jìn)行Java異常處理設(shè)計(jì)時(shí)的幾個(gè)建議。若有不正Z處,請(qǐng)多多諒解和指正,不勝感激。一?什么是異常異常的英文單詞是exception,字

2、面翻譯就是“意外、例外”的意思,也就是非正常情況。事實(shí)上,異常本質(zhì)上是程序上的錯(cuò)誤,包括程序邏輯錯(cuò)誤和系統(tǒng)錯(cuò)誤。比如使用空的引用、數(shù)組下標(biāo)越界、內(nèi)存溢出錯(cuò)謀等,這些都是意外的情況,背離我們程序本身的意圖。錯(cuò)誤在我們編寫(xiě)程序的過(guò)程屮會(huì)經(jīng)常發(fā)生,包括編譯期間和運(yùn)行期間的錯(cuò)誤,在編譯期間出現(xiàn)的錯(cuò)誤有編譯器幫助我們一起修正,然而運(yùn)行期間的錯(cuò)誤便不是編譯器力所能及了,并且運(yùn)行期間的錯(cuò)誤往往是難以預(yù)料的。假若程序在運(yùn)行期間岀現(xiàn)了錯(cuò)誤,如果置之不理,程序便會(huì)終止或直接導(dǎo)致系統(tǒng)崩潰,顯然這不是我們希望看到的結(jié)杲。因此,如何對(duì)運(yùn)行期間出現(xiàn)的錯(cuò)課進(jìn)行處理和補(bǔ)救呢?Java捉供了異常機(jī)制來(lái)進(jìn)行處理,通過(guò)異

3、常機(jī)制來(lái)處理程序運(yùn)行期間出現(xiàn)的錯(cuò)誤。通過(guò)異常機(jī)制,我們可以更好地提升程序的健壯性。在Java中異常被當(dāng)做對(duì)象來(lái)處理,根類(lèi)是java.lang.Throwable類(lèi),在Java中定義了很多異常類(lèi)(如OutOfMemoryError>NullPointerException>IndexOutOfBoundsExccption等),這些異常類(lèi)分為兩大類(lèi):Error和Exception。Error是無(wú)法處理的異常,比如OutOfMemotyEiror,—般發(fā)生這種異常,JVM會(huì)選擇終止程序。因此我們編寫(xiě)程序時(shí)不需要關(guān)心這類(lèi)異常。Exception,也就是我們經(jīng)常見(jiàn)到的一些異常情況,比如Nul

4、lPointerException、TndexOutOfBoundsException,這些異常是我們口J以處理的異常。Exception類(lèi)的異常包括checkedcxccption和uncheckedexception(uncheckedexception也稱運(yùn)行時(shí)異常RuntimeException,當(dāng)然這里的運(yùn)彳亍時(shí)異常并不是前面我所說(shuō)的運(yùn)行期間的異常,只是Java中用運(yùn)行時(shí)異常這個(gè)術(shù)語(yǔ)來(lái)表示,Exception類(lèi)的異常都是在運(yùn)行期間發(fā)生的)。uncheckedexception(非檢査異常),也稱運(yùn)行時(shí)異常(RuntimeException),比如常見(jiàn)的NullPointer

5、Exception>Index0ut0fBoundsExceptiono對(duì)于運(yùn)行時(shí)異常,java編譯器不要求必須進(jìn)行異常捕獲處理或者拋出聲明,由程序員自行決定。checkedexception(檢查異常),也稱非運(yùn)行時(shí)異常(運(yùn)行時(shí)異常以外的異常就是非運(yùn)行時(shí)異常),走腹編譯器強(qiáng)制程序員必須進(jìn)行捕獲處理,比如常見(jiàn)的IOExeption和SQLException。對(duì)于非運(yùn)行時(shí)界常如果不進(jìn)行捕獲或者拋出聲明處理,編譯都不會(huì)通過(guò)。在Java中,異常類(lèi)的結(jié)構(gòu)層次圖如下圖所示:在Java屮,所有異常類(lèi)的父類(lèi)是Throwable類(lèi),Error類(lèi)是error類(lèi)型異常的父類(lèi),Exception類(lèi)是exc

6、eption類(lèi)型界常的父類(lèi),RuntimeException類(lèi)是所有運(yùn)行時(shí)異常的父類(lèi),RuntimeException以外的并且繼承Exception的類(lèi)是非運(yùn)行時(shí)異常。典型的RuntimeException包括NullPointcrExccption、IndexOutOfBoundsException、IIlegalArgumentException等。典型的非RuntimeException包扌舌IOException、SQLException等。二.Java中如何處理異常在J3V3中如果需要處理異常,必須先對(duì)異常進(jìn)行捕獲,然后再對(duì)異常情況進(jìn)行處理。如何對(duì)可能發(fā)生異常的代碼進(jìn)行異

7、常捕獲和處理呢?使用try和catch關(guān)鍵字即可,如下面一段代碼所示:try{Filefile=newFileC'dr/a.txt");辻(!f訂c.cxists())file.createNewFile();}catch(IOExceptione){//TODO:handleexception}被try塊包圍的代碼說(shuō)明這段代碼可能會(huì)發(fā)生異常,一旦發(fā)生異常,異常便會(huì)被catch捕獲到,然后需要在catch塊中進(jìn)行異常處理。這是一種處理異常的方式。在Java

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。