零點(diǎn)起飛學(xué)Java之異常處理.pptx_第1頁
零點(diǎn)起飛學(xué)Java之異常處理.pptx_第2頁
零點(diǎn)起飛學(xué)Java之異常處理.pptx_第3頁
零點(diǎn)起飛學(xué)Java之異常處理.pptx_第4頁
零點(diǎn)起飛學(xué)Java之異常處理.pptx_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章異常處理 Java語言提供了異常機(jī)制來處理程序運(yùn)行過程中可能發(fā)生的各種非正常事件 通過異常處理機(jī)制 大大提高了程序的健壯性 Java語言對(duì)各種異常進(jìn)行了相關(guān)的分類 提供了處理異常的不同手段 下面會(huì)進(jìn)行詳細(xì)介紹 7 1什么是異常 異常是指在程序運(yùn)行過程中出現(xiàn)的非正常事件 Java語言采用面向?qū)ο蟮姆椒ㄌ峁┝艘惶桩惓L幚頇C(jī)制 程序運(yùn)行過程中發(fā)生的所有異常都被封裝成異常類 根據(jù)異常的不同特點(diǎn) 可以劃分為不同的異常類型 Java語言的異常類通過繼承關(guān)系形成一個(gè)層次關(guān)系 如圖7 1所示 7 1什么是異常 從異常類層次結(jié)構(gòu)圖可以看出 Thorowable類位于異常層次結(jié)構(gòu)的最頂層 所有異常子類都繼承了Throwable類 都是可拋出的 從頂層往下 Thorowable類包含兩個(gè)子類 Exception和Error Error類被認(rèn)為是不能恢復(fù)的嚴(yán)重錯(cuò)誤 如系統(tǒng)內(nèi)部錯(cuò)誤和資源耗盡錯(cuò)誤等 這類錯(cuò)誤通常用戶程序不能處理 交由Java虛擬機(jī)進(jìn)行處理 Exception類定義的異常是程序可以進(jìn)行處理的 本章下面所說的異常均指此類異常 根據(jù)具體特點(diǎn) Exception異常又分為繼承自RuntimeException類的異常和非繼承自RuntimeException類的異常 7 2異常的類型 Java程序中處理的異常主要包括運(yùn)行時(shí)異常和可控異常 運(yùn)行時(shí)異常是擴(kuò)展了RuntimeException類的異常類 在編寫程序時(shí)不需要特別處理 在程序執(zhí)行時(shí)有可能發(fā)生 可控異常是編寫程序時(shí)即可預(yù)見的異常 此類異常需要程序?qū)ζ渥龀鎏幚?或進(jìn)行捕獲處理 或拋出交由上一層代碼處理 關(guān)于異常捕獲和拋出的知識(shí)在下面章節(jié)會(huì)詳細(xì)介紹 對(duì)這兩類異常 下面分別進(jìn)行舉例說明 7 2 1運(yùn)行時(shí)異常 Java語言中系統(tǒng)定義的常見運(yùn)行時(shí)異常有NullPointerException ArithmeticException ArrayStoreException BufferOverflowException BufferUnderflowException ClassCastException IndexOutOfBoundsException等 7 2 2可控異常 Java語言中系統(tǒng)定義的可控異常有ClassNotFoundException IOException DataFormatException Naming Exception等 7 3處理異常 對(duì)于程序中可能發(fā)生的各種異常 往往需要對(duì)其進(jìn)行相關(guān)的處理 從而增加程序的健壯性 在Java語言中 對(duì)異常的處理包括捕獲異常 向外拋出異常 另外 用戶還可以定義自己的異常類 對(duì)異常信息進(jìn)行重新包裝 對(duì)于這些內(nèi)容 下面分別進(jìn)行介紹 7 3 1捕獲異常 對(duì)于程序中出現(xiàn)的異常 可以利用try catch語句進(jìn)行捕獲 在編寫程序過程中 有些操作無論是否發(fā)生異常 都應(yīng)該進(jìn)行處理 如關(guān)閉數(shù)據(jù)庫連接 這樣的處理代碼可以放在finally代碼塊中 下面對(duì)try catch語句和finally語句分別進(jìn)行講解 1 try catch語句 在Java語言中 用try catch語句來捕獲異常 語法格式如圖7 2所示 1 try catch語句 try catch中可以具有多條catch語句 分別用于捕獲不同類型的異常 注意 由于NullPointerException異常和ArithmeticException異常都是運(yùn)行時(shí)異常 所以即使不使用try catch語句捕獲 程序也能編譯通過 也就是說 可控異常必須要捕獲或拋出 運(yùn)行時(shí)異??梢圆东@或拋出 也可以不做任何處理 2 finally語句 finally語句用于無論是否發(fā)生異常都要執(zhí)行的操作 需要與try catch語句配合使用 finally語句語法格式如圖7 3所示 7 3 2拋出異常 對(duì)于方法中可能出現(xiàn)的異常 如果不想在方法中進(jìn)行捕獲 可以在聲明時(shí)利用throws語句進(jìn)行拋出 在方法體中 可以使用throw語句拋出繼承了throwable類的子類 拋出的異常由上一層代碼進(jìn)行處理 下面對(duì)throws和throw語句分別進(jìn)行講解 1 throws語句 throws語句用于在方法聲明時(shí)拋出方法體中可能存在的異常 語法格式如圖7 4所示 其中 參數(shù)exceptionList表示可能存在的異常列表 都應(yīng)該是throwable類的子類 多個(gè)類之間用 號(hào)隔開 注意 在示例7 5中 throwException方法中的代碼 s getBytes 會(huì)拋出IOException運(yùn)行時(shí)異常 由于在方法定義時(shí)聲明了拋出IOException異常 所以在方法體中不需要再對(duì)此異常進(jìn)行捕獲處理 2 throw語句 throw語句用于在方法體中拋出異常 語法格式如圖7 5所示 其中 參數(shù)exception應(yīng)該是throwable類的子類 不能為多個(gè) 7 3 3自定義異常 盡管Java語言定義了許多異常類 用戶仍可以通過繼承Exception類或RuntimeException類來自定義異常 自定義異常的語法格式如圖7 6所示 7 4小結(jié) 本章介紹了Java語言中的異常處

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論