JAVA語(yǔ)言異常課件_第1頁(yè)
JAVA語(yǔ)言異常課件_第2頁(yè)
JAVA語(yǔ)言異常課件_第3頁(yè)
JAVA語(yǔ)言異常課件_第4頁(yè)
JAVA語(yǔ)言異常課件_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章異常回顧繼承及其JAVA實(shí)現(xiàn)多態(tài)及其JAVA實(shí)現(xiàn)訪問(wèn)修飾符對(duì)類(lèi)成員的訪問(wèn)限制方法修飾符:static、final、abstract2目標(biāo)理解異常的概念 運(yùn)用try塊、catch塊和finally塊處理異常運(yùn)用多重catch塊處理異常運(yùn)用嵌套try/catch塊處理異常運(yùn)用關(guān)鍵字throw和throws處理異常運(yùn)用JAVA編寫(xiě)和使用自定義異常3………IFBISZEROGOTOERRORC=A/BPRINTCGOTOEXITERROR:

處理異常的塊“以零作除數(shù),代碼導(dǎo)致錯(cuò)誤”

DISPLAY

EXIT:END處理異常2-1處理運(yùn)行時(shí)錯(cuò)誤的偽代碼5手動(dòng)引發(fā)異常指定由方法引發(fā)的異常

tryfinallycatchthrowsthrow處理異常2-2要監(jiān)控的程序語(yǔ)句包含在此塊中以合理的方式捕獲和處理異常釋放資源等6Java異常類(lèi)文件結(jié)束EOFException找不到文件I/O異常的根類(lèi)IOException數(shù)字轉(zhuǎn)化格式異常,比如字符串到float型數(shù)字的轉(zhuǎn)換無(wú)效NumberFormatException不能加載所需的類(lèi)ClassNotFoundException方法接收到非法參數(shù)IllegalArgumentException數(shù)組大小小于或大于實(shí)際的數(shù)組大小ArrayIndexOutOfBoundException嘗試訪問(wèn)null對(duì)象成員NullPointerException許多java.lang異常的基類(lèi)RuntimeException異常層次結(jié)構(gòu)的根類(lèi)Exception算術(shù)錯(cuò)誤情形,如以零作除數(shù)ArithmeticException線程中斷InterruptedException說(shuō)明異常7try和catch塊2-2演示:示例1try和catch塊的用法classExceptionRaised{/**構(gòu)造方法.*/publicExceptionRaised(){}/***這個(gè)方法運(yùn)行時(shí)將會(huì)產(chǎn)生一個(gè)異常.*@paramoperand1除法中的分子*@paramoperand2除法中的分母*@returnint返回除法的結(jié)果*/publicintcalculate(intoperand1,intoperand2){

intresult=operand1/operand2;returnresult;}}publicclassArithmeticException{/**構(gòu)造方法.*/publicArithmeticException(){}publicstaticvoidmain(String[]args){ExceptionRaisedobj=newExceptionRaised();try{/*定義變量result以存儲(chǔ)結(jié)果.*/intresult=obj.calculate(9,0);System.out.println(result);}catch(Exceptione){System.err.println(“發(fā)生異常:"+e.toString());e.printStackTrace();}}}9finally塊try塊finally塊catch塊無(wú)異常異常try、catch和finally塊的執(zhí)行流程10異常處理塊的一般形式try{ //要監(jiān)控錯(cuò)誤的代碼塊methodGeneratingException();}catch(Exceptione){ //Exceptione

的異常處理程序}finally{ //在try結(jié)束前要執(zhí)行的代碼塊cleanup();}11ExceptionArithmeticExceptionNullPointerExceptionObjectThrowableErrorThreadDeathSQLExceptionRuntimeExceptionNumberFormatException……異常類(lèi)的層次結(jié)構(gòu)Throwable具有兩個(gè)子類(lèi),它們是Exception:處理用戶程序應(yīng)當(dāng)捕獲的異常情況Error:Error類(lèi)的異常為內(nèi)部錯(cuò)誤,因此在正常情況下不期望用戶的程序捕獲它們AWTError13多重catch塊3-2使用多重catch語(yǔ)句時(shí),異常子類(lèi)一定要位于異常父類(lèi)之前

try{…...}catch(Exceptione){……}catch(ArrayIndexOutOfBoundsExceptione){……}

×14多重catch塊3-3演示:示例2多重catch的使用classExceptionCode{/**構(gòu)造方法.*/protectedExceptionCode(){}/**這個(gè)方法將將零作除數(shù).*/publicvoidcalculate(){try{intnum=0;intnum1=42/num;}catch(Exceptione){System.out.println("父類(lèi)異常

catch子句");}catch(ArithmeticExceptionae){//錯(cuò)誤

–不能到達(dá)的代碼

System.out.println("這個(gè)子類(lèi)的父類(lèi)是"+"exception類(lèi),且不能到達(dá)");}}}classUnreachableCode{/**構(gòu)造方法.*/protectedUnreachableCode(){}/***類(lèi)和應(yīng)用程序的唯一進(jìn)入點(diǎn).*@paramargs字符串參數(shù)的數(shù)組*/publicstaticvoidmain(String[]args){ExceptionCodeobj=newExceptionCode();obj.calculate();}}15使用throw和throws2-1語(yǔ)句3throw異常引發(fā)的異常!停止異常處理程序可執(zhí)行程序語(yǔ)句語(yǔ)句1語(yǔ)句217使用throw和throws2-2處理異常被調(diào)用的方法調(diào)用方法處理異常可能會(huì)導(dǎo)致異常防止被調(diào)用的方法出現(xiàn)異常并處理異常typecalledmethod-name(parameter-list)throwsexception-list{//bodyofmethod}typecallingmethod-name{try{//statements calledmethod-name();}catch(Exceptione){//statements}}18用戶自定義異常2-1自定義異常概念使用自定義異常的時(shí)候JavaAPI提供的內(nèi)置異常不一定總能捕獲程序中發(fā)生的所有錯(cuò)誤。有時(shí)會(huì)需要?jiǎng)?chuàng)建用戶自定義異常自定義異常需要繼承Exception及其子類(lèi)19總結(jié)異常是運(yùn)行時(shí)發(fā)生的錯(cuò)誤可以使用try、catch、throw、thro

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論