移動(dòng)通信軟件編程基礎(chǔ)-Java語(yǔ)言_第1頁(yè)
移動(dòng)通信軟件編程基礎(chǔ)-Java語(yǔ)言_第2頁(yè)
移動(dòng)通信軟件編程基礎(chǔ)-Java語(yǔ)言_第3頁(yè)
移動(dòng)通信軟件編程基礎(chǔ)-Java語(yǔ)言_第4頁(yè)
移動(dòng)通信軟件編程基礎(chǔ)-Java語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

5異常第章本章目標(biāo)理解異常的概念運(yùn)用Java實(shí)現(xiàn)的異常處理

掌握J(rèn)ava中異常的實(shí)現(xiàn)形式掌握J(rèn)ava中實(shí)現(xiàn)自定義異常異常

異常就是在程序的運(yùn)行過程中所發(fā)生的異常事件,它中斷指令的正常執(zhí)行。publicclassExceptionDemo{publicstaticvoidmain(String[]args){

intnum1=0,num2=0;

intresult=0;

num1=Integer.parseInt(args[0]); num2=Integer.parseInt(args[1]);

result=num1/num2;

System.out.println(num1+

"/

"+num2+

"="+result);}}當(dāng)num2為0值程序運(yùn)行出現(xiàn)異常

演示使用Java出現(xiàn)異常異常演示異常處理的方法

IFBISZEROGOTOERROR

C=A/BPRINTCGOTOEXITERROR:異常處理塊DISPLAYEXIT:END超市異常處理的方法

保安室監(jiān)控保安小偷Java的異常類

Java的異常類

異常說明Exception異常層次結(jié)構(gòu)的根類RuntimeException許多java.lang異常的基類ArithmeticException算術(shù)錯(cuò)誤情形,如以零作除數(shù)IllegalArgumentException方法接收到非法參數(shù)ArrayIndexOutOfBoundsException數(shù)組大小小于或大于實(shí)際的數(shù)組大小NullPointerException嘗試訪問null對(duì)象成員ClassNotFoundException不能加載所需的類NumberFormatException數(shù)字轉(zhuǎn)化格式異常,如字符串轉(zhuǎn)換浮點(diǎn)IOExceptionI/O異常的根類FileNotFoundException找不到文件EOFException文件結(jié)束InterruptedException線程中斷try-catch塊

try{result=num1/num2;

System.out.println("計(jì)算結(jié)果為"

+result);}catch(Exceptione){System.out.println(e.toString());

e.printStackTrace();

}演示使用try-catch塊實(shí)現(xiàn)異常處理try-catch塊異常處理演示try-catch-finally塊

try{result=num1/num2;

System.out.println("計(jì)算結(jié)果"+result);}catch(Exceptione){System.out.println(e.toString());

e.printStackTrace();

}finally{

System.out.println("此塊中釋放資源");

}演示使用try-catch-finally塊實(shí)現(xiàn)異常處理try-catch-finally塊異常處理演示多重catch塊

try塊catch塊catch塊catch塊異常類由子類到父類...try{ num1=Integer.parseInt(args[0]);num2=Integer.parseInt(args[1]);

System.out.println("開始計(jì)算");result=num1/num2;

System.out.println("計(jì)算結(jié)果"+result);}catch(ArrayIndexOutOfBoundsExceptione){

System.out.println("參數(shù)傳入不足兩個(gè)");

e.printStackTrace();} catch(NumberFormatExceptione){

System.out.println("參數(shù)不是數(shù)字");

e.printStackTrace();}catch(Exceptione){e.printStackTrace();}演示使用多重catch塊實(shí)現(xiàn)異常處理多重catch塊異常處理演示嵌套try-catch塊

try{ num1=Integer.parseInt(args[0]);

try{ num2=Integer.parseInt(args[1]); result=num1/num2;

System.out.println("計(jì)算結(jié)果"+result);}

catch(ArithmeticExceptione){

System.out.println("除數(shù)不能為零");}}catch(ArrayIndexOutOfBoundsExceptione){

System.out.println("參數(shù)傳入不足兩個(gè)");} catch(NumberFormatExceptione){

System.out.println("參數(shù)不是數(shù)字");}catch(Exceptione){e.printStackTrace();}嵌套

try-catch塊外部

try-catch塊演示使用嵌套catch塊實(shí)現(xiàn)異常處理嵌套catch塊異常處理演示throw語(yǔ)句

publicclassThrowDemo{

public

staticvoidmain(String[]args){……num1=Integer.parseInt(args[0]);num2=Integer.parseInt(args[1]); System.out.println("開始計(jì)算");try{

if(num2==0)

thrownewArithmeticException();result=num1/num2;

System.out.println("計(jì)算完畢:結(jié)果為"+result);}catch(Exceptione){e.printStackTrace();}……}}ArithmeticException異常拋出異常捕獲并處理異常發(fā)現(xiàn)異常通知catch塊throws語(yǔ)句

classThrowTest{

voidcompute(String[]args)throwsException

{

intnum1=0,num2=0;

intresult=0; num1=Integer.parseInt(args[0]);num2=Integer.parseInt(args[1]);

System.out.println("開始計(jì)算");

if(num2==0)

thrownewException();result=num1/num2;

System.out.println("計(jì)算完畢:結(jié)果為"+result);

System.out.println("計(jì)算過程結(jié)束");}}拋出異常向上拋出異常throws語(yǔ)句

publicclassThrowDemo{

publicstaticvoidmain(String[]args){ThrowTesttt=newThrowTest();

try

{ pute(args);}

catch(Exceptione){e.printStackTrace();}

System.out.println("運(yùn)行結(jié)束");}}創(chuàng)建對(duì)象-compute方法可以拋出異常當(dāng)參數(shù)arg[1]為0compute方法拋出異常發(fā)現(xiàn)異常通知catch塊捕獲并處理異常演示使用throws實(shí)現(xiàn)從異常拋出異常Throws語(yǔ)句演示自定義異常

classUserExceptionDemoextends

ArithmeticException{UserExceptionDemo(){super("除數(shù)為零");}}第一步:創(chuàng)建異常類創(chuàng)建自定義異常類自定義異常

classUseUserException{

voidcompute(String[]args)throwsUserExceptionDemo{ ……

num2=Integer.parseInt(args[1]);

if(num2==0)

thrownewUserExceptionDemo();result=num1/num2;

System.out.println("計(jì)算完畢:結(jié)果為"+result);}UseUserException(String[]args){ try{ compute(args); } catch(UserExceptionDemoe){ e.printStackTrace(); }}}第二步:使用異常類拋出自定義異常參數(shù)args[1]=0拋出自定義異常自定義異常

publicclassUserException{

publicstaticvoidmain(Stringargs[]){UseUserExceptionuue=newUseUserException(args);

System.out.println("程序運(yùn)行結(jié)束");}}第三步:測(cè)試異常類創(chuàng)建捕獲自定義異常的對(duì)象演

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論