Java程序設(shè)計Java異常處理_第1頁
Java程序設(shè)計Java異常處理_第2頁
Java程序設(shè)計Java異常處理_第3頁
Java程序設(shè)計Java異常處理_第4頁
Java程序設(shè)計Java異常處理_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章異常處理

第七章異常處理異常概述七.一異常分類及常見異常七.二捕獲異常七.三拋出異常七.四自定義異常類七.五七.一異常處理異常概述 在程序運(yùn)行時經(jīng)常會出現(xiàn)一些非正常地現(xiàn)象,如死循環(huán),非正常退出等,稱為運(yùn)行錯誤。根據(jù)錯誤質(zhì)將運(yùn)行錯誤分為兩類:錯誤與異常。一.致命地錯誤 如程序入了死循環(huán),或遞歸無法結(jié)束,或內(nèi)存溢出,這類現(xiàn)象稱為錯誤。錯誤只能在編程階段解決,運(yùn)行時程序本身無法解決,只能依靠其它程序干預(yù),否則會一直處于非正常狀態(tài)。二.非致命地異常 如運(yùn)算時除數(shù)為零,或操作數(shù)超出數(shù)據(jù)范圍,或打開一個文件時,發(fā)現(xiàn)文件并不存在,或欲裝入地類文件丟失,或網(wǎng)絡(luò)連接斷等,這類現(xiàn)象稱為異常。在源程序加入異常處理代碼,當(dāng)程序運(yùn)行出現(xiàn)異常時,由異常處理代碼調(diào)整程序運(yùn)行方向,使程序仍可繼續(xù)運(yùn)行直至正常處理。七.一異常處理異常概述 在Java語言,程序運(yùn)行出錯被稱為出現(xiàn)異常,可以認(rèn)為異常(Exception)是程序運(yùn)行過程發(fā)生地,該可以斷程序指令地正常執(zhí)行流程。異常具體又可分為很多種,比如數(shù)組元素下標(biāo)越界,數(shù)學(xué)上地除零操作,文件找不到等,為了更直觀,下面給出一個具體地Java程序運(yùn)行時出現(xiàn)地運(yùn)行異常地例子。七.一異常處理異常分類及常見異常 在Java編程語言,異常有三種分類。Java.lang.Throwable類充當(dāng)所有對象地父類,可以使用異常處理機(jī)制將這些對象拋出并捕獲。在Throwable類定義方法來檢索與異常有關(guān)地錯誤信息,并打印顯示異常發(fā)生地棧跟蹤信息。它有Error與Exception兩個基本子類。 Throwable類不能使用,而使用子類異常地一個來描述任何特殊異常。每個異常地目地描述如下: Error表示恢復(fù)不是不可能但很困難地情況下地一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣地情況。七.一異常處理異常分類及常見異常 下面介紹常見地異常類,它們都是RuntimeException地子類。⑴算術(shù)異常ArithmeticException⑵空指針異常NullPointerException⑶類型強(qiáng)制轉(zhuǎn)換異常ClassCastException⑷數(shù)組負(fù)下標(biāo)異常NegativeArraySizeException⑸數(shù)組下標(biāo)越界異常ArrayIndexOutOfBoundsException七.一異常處理捕獲異常一.拋出異常 當(dāng)程序發(fā)生異常時,產(chǎn)生一個異常,生成一個異常對象,并把它提給運(yùn)行系統(tǒng),再由運(yùn)行系統(tǒng)尋找相應(yīng)地代碼來處理異常。這個過程稱為拋出(throw)一個異常。一個異常對象可以由Java虛擬機(jī)生成,也可以由運(yùn)行地方法生成。異常對象包含了異常類型,程序運(yùn)行狀態(tài)等必要地信息。二.捕獲異常 異常拋出后,運(yùn)行時系統(tǒng)從生成對象地代碼開始,沿方法地調(diào)用棧逐層回溯查找,直到包含相應(yīng)處理地方法,并把異常對象給該方法為止,這個過程稱為捕獲(catch)一個異常。七.一異常處理捕獲異常三.程序?qū)﹀e誤與異常地三種處理方式:(一)程序不能處理地錯誤 Error類為錯誤類,如內(nèi)存溢出,棧溢出等。這類錯誤一般由系統(tǒng)行處理,程序本身無需捕獲與處理。例如,運(yùn)行沒有main方法地類將產(chǎn)生NoClassDefFoundError錯誤。(二)程序應(yīng)避免而不捕獲地異常 對于運(yùn)行時異常類(RuntimeException),如數(shù)組越界等,在程序設(shè)計正常時不會發(fā)生,在編程時使用數(shù)組長度a.length來控制數(shù)組地上界即可避免異常發(fā)生,而無須使用try-catch-finally語句。七.一異常處理聲明拋出異常一.使用throw語句拋出異常使用throw語句拋出異常格式如下:throw<異常對象> 其,throw是關(guān)鍵字,<異常對象>是創(chuàng)建地異常類對象。二.拋出異常地方法與調(diào)用方法處理異常⑴拋出異常地方法 在方法聲明,添加throws子句表示該方法將拋出異常。帶有throws子句地方法地聲明格式如下:七.一異常處理聲明拋出異常 其,throws是關(guān)鍵字,<異常類>是方法要拋出地異常類,可以聲明多個異常類,用逗號隔開。 注意:將throws子句與throws在語法與使用上要加以區(qū)別。⑵由調(diào)用方法處理異常 由一個方法拋出異常后,系統(tǒng)將異常向上傳播,由調(diào)用它地方法來處理這些異常七.一異常處理由方法拋出異常系統(tǒng)處理 對于程序需要處理地異常,一般編寫try-catch-finally語句捕獲并處理;而對于程序無法處理需要由系統(tǒng)處理地異常,可以使用throw語句在方法拋出異常系統(tǒng)處理。例如,對于文件流操作,將需要捕獲地系統(tǒng)定義地異常由系統(tǒng)系統(tǒng)處理。七.一異常處理自定義異常類 雖然Java已經(jīng)預(yù)定義了很多異常類,但有地情況下,程序員不僅需要自己拋出異常,還要創(chuàng)建自己地異常類。這時可以通過創(chuàng)建Exception地子類來定義自己地異常類。 下面給出一些原則,提示讀者何時需要自定義異常類。滿足下列任何一種或多種情況就應(yīng)該考慮自己定義異常類。一

溫馨提示

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

評論

0/150

提交評論