版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 半導(dǎo)體行業(yè)人形機(jī)器人篇:半導(dǎo)體需求攀升人形機(jī)器人驅(qū)動(dòng)行業(yè)新拐點(diǎn)
- 2022年河北省張家口市第二十中學(xué)中考模擬英語(yǔ)試題(解析版)
- 拼搭玩具行業(yè)深度:IP與玩法融合稀缺供給高成長(zhǎng)
- 2025年中國(guó)網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)市場(chǎng)競(jìng)爭(zhēng)格局及投資戰(zhàn)略規(guī)劃報(bào)告
- 中國(guó)汽車電源行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 2023-2029年中國(guó)現(xiàn)代服務(wù)行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 大同加氫站項(xiàng)目招商引資報(bào)告
- 建設(shè)年產(chǎn)10000噸各類新材料生產(chǎn)項(xiàng)目可行性研究報(bào)告模板立項(xiàng)審批
- 《護(hù)理臨床帶教》課件
- 牛肉火鍋店服務(wù)員工作總結(jié)
- 工程機(jī)械租賃服務(wù)方案及保障措施范本
- 國(guó)有建設(shè)企業(yè)《大宗材料及設(shè)備采購(gòu)招標(biāo)管理辦法》
- 民間秘術(shù)絕招大全
- 水運(yùn)工程質(zhì)量檢驗(yàn)標(biāo)準(zhǔn)(JTS_257-2008)附表格
- 春節(jié)停工報(bào)告完整版3頁(yè)
- (完整版)展廳展館博物館美術(shù)館設(shè)計(jì)標(biāo)招標(biāo)評(píng)分細(xì)則及打分表
- [宋小寶小品甄嬛后傳臺(tái)詞]甄嬛歪傳小品劇本臺(tái)詞范本
- 扭扭棒手工PPT課件
- 曲式分析演唱技巧情感運(yùn)用
- 古建筑白蟻危害及防控現(xiàn)狀
- 建筑裝飾裝修施工組織設(shè)計(jì)方案(完整版)
評(píng)論
0/150
提交評(píng)論