![實(shí)驗(yàn)五---異常處理(共6頁)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/780dca26-382f-4cb3-9f6d-afcfe6aaf234/780dca26-382f-4cb3-9f6d-afcfe6aaf2341.gif)
![實(shí)驗(yàn)五---異常處理(共6頁)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/780dca26-382f-4cb3-9f6d-afcfe6aaf234/780dca26-382f-4cb3-9f6d-afcfe6aaf2342.gif)
![實(shí)驗(yàn)五---異常處理(共6頁)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/780dca26-382f-4cb3-9f6d-afcfe6aaf234/780dca26-382f-4cb3-9f6d-afcfe6aaf2343.gif)
![實(shí)驗(yàn)五---異常處理(共6頁)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/780dca26-382f-4cb3-9f6d-afcfe6aaf234/780dca26-382f-4cb3-9f6d-afcfe6aaf2344.gif)
![實(shí)驗(yàn)五---異常處理(共6頁)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/780dca26-382f-4cb3-9f6d-afcfe6aaf234/780dca26-382f-4cb3-9f6d-afcfe6aaf2345.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)五 異常處理一、實(shí)驗(yàn)?zāi)康?. 學(xué)會利用Try-catch-finally語句來捕獲和處理異常;2. 掌握自定義異常類的方法。二、實(shí)驗(yàn)要求1. 通過編程理解系統(tǒng)異常處理的機(jī)制和創(chuàng)建自定義異常的方法。2. 掌握基礎(chǔ)類。三、實(shí)驗(yàn)內(nèi)容(一)異常處理機(jī)制1. 編寫使用 trycatch 語句處理異常的程序文件Demo4_1.java,源代碼如下: public class Demo3_1 public static void main(String arg3) System.out.println("這是一個異常處理的例子n"); try int i=1
2、0; i /=0; catch (ArithmeticException e) System.out.println("異常是:"+e.getMessage(); finally System.out.println("finally 語句被執(zhí)行"); l 編譯并運(yùn)行程序。 注意:如果在 catch 語句中聲明的異常類是 Exception,catch 語句也能正確地捕獲,這是因?yàn)?Exception是ArithmeticException的父類。如果不能確定會發(fā)生哪種情況的異常,那么最好指定catch的參數(shù)為 Exception,即說明異常的類型為 E
3、xception。2、源文件是Demo3_2.java。要捕捉的異常是除數(shù)為零和數(shù)組下標(biāo)越界。通過修改a和c下標(biāo)值體驗(yàn)程序。public class Demo3_2 public static void main (String args)int a, b;int c=1,2,3;try a=10; b=100/a; System.out.println ("當(dāng)前a值:"+a); c2=200; System.out.println ("當(dāng)前數(shù)組長:"+c.length); catch(ArithmeticException e) System.out.
4、println ("除零錯誤:"+e); catch(ArrayIndexOutOfBoundsException e) System.out.println ("數(shù)組下標(biāo)越界:"+e); finally System.out.println ("我是finally"); System.out.println ("我能被正常執(zhí)行到");【思考】 先運(yùn)行上面程序,觀察運(yùn)行結(jié)果。 按下條件分別修改數(shù)據(jù),編譯后運(yùn)行,觀察輸出結(jié)果,分析在trycatch塊里那些語句沒有被執(zhí)行,為什么? 塊外那些語句可被執(zhí)行到,為什么?修改
5、a=0, 保持c2=200;保持a=10,修改c3=200,修改a=0, 修改c3=200; 再添加一個catchException e ,位置在最前面,觀察編譯信息,說明什么?3、編寫Demo3_3.java 程序,計算兩數(shù)相除并輸出結(jié)果。使用兩個catch子句,分別捕捉除數(shù)為0的異常和參數(shù)輸入有誤異常。源代碼如下:import java.io.*;class Demo3_3public static void main(String args ) tryBufferedReader strin=new BufferedReader ( new InputStreamReader(Syste
6、m .in);System .out .print("請輸入除數(shù):");String cl=strin .readLine();int a=Integer .parseInt(cl);System .out .print("請輸入被除數(shù):");cl=strin .readLine();int b=Integer .parseInt(cl);int c=b/a;System .out .println("商為:"+c);catch(NumberFormatException e)System .out .println("請輸
7、入整數(shù)!");/e .printStackTrace();/捕獲除數(shù)為0的異常catch(ArithmeticException e)System .out .println("除數(shù)不可以0!"); /e .printstackTrace(); /捕獲與I/O有關(guān)的異常catch(IOException e)e.printStackTrace(); /捕獲數(shù)值轉(zhuǎn)化時的異常,如不能將字符轉(zhuǎn)化成數(shù)值 編譯并運(yùn)行,當(dāng)輸入除數(shù)為0時,將有異常出現(xiàn),當(dāng)輸入的不是整數(shù)時,如將30輸成了3o,出現(xiàn)的是另一種異常。(二)自定義異常類4、注意throw、throws的使用。源文件是
8、Demo3_4.java。package sy3;class MyException extends Exceptionpublic String toString()return "除數(shù)等于零" class DIVdouble div(double x,double y) throws MyExceptionif(y=0) throw new MyException();else return (x/y);public class Demo3_4 public static void main (String args) double z;DIV d=new DIV();
9、 try z=d.div(100,0);System.out.println ("當(dāng)前z值:"+z); catch(MyException e) System.out.println (e.toString(); 【思考】 修改try.catch中語句z=div.DIV(100,0)入口參數(shù),觀察運(yùn)行結(jié)果。 z=d.div(100,10);z=d.div(100,0); 將try.catch語句注釋掉,觀察編譯信息。 上面條件保持,在main函數(shù)后面加上throws MyException再重新編譯,能否通過?然后運(yùn)行觀察結(jié)果,得到什么結(jié)論?2編寫程序Demo3_5.jav
10、a,包含自定義異常,當(dāng)輸入數(shù)值為13和4時拋出該異常。源代碼如下:class Ex3_5 extends Exception Ex3_5 (String msg) super(msg); class Demo3_5private int x;void setX(int x) this.x=x; void f1() throws Ex3_5 if(x=13) throw new Ex3_5("I dont like 13!");else if(x=4)throw new Ex3_5("I dont like 4!");else System .out.pr
11、intln(100/x);public static void main(String args ) Demo3_5 a=new Demo3_5(); try a.setX(5); /a.setX(13);/a.setX(4);/a.setX(0);a.f1();catch(Ex3_5 e) System.out.println("get message:"+e.getMessage();【思考】編譯并運(yùn)行,分別取消注釋上面程序中被注釋的語句。當(dāng)釋放a.setX(13)語句后,查看運(yùn)行結(jié)果,當(dāng)釋放a.setX(4)語句后,查看運(yùn)行結(jié)果,當(dāng)釋放a.setX(0)語句后,查看運(yùn)
12、行結(jié)果。四、實(shí)驗(yàn)練習(xí)題1、編寫Java程序,創(chuàng)建數(shù)組后,對數(shù)組訪問時發(fā)生的數(shù)組越界.實(shí)驗(yàn)使用try-catch語句處理該異常。運(yùn)行結(jié)果如圖所示。import java.io.*;public class Demo3_6 public static void main(String arg3) try BufferedReader strin=new BufferedReader ( new InputStreamReader(System .in); System.out.println("請輸入創(chuàng)建數(shù)組的個數(shù):n"); String cl=strin.readLine(); int a=Integer .parseInt(cl); System.out.println("數(shù)組創(chuàng)建完畢!您要查找那個元素?n"); String c2=strin.r
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025荒山承包合同書范本
- 新郎簡單大方的致辭15篇
- 客戶關(guān)系與合作伙伴管理
- 商業(yè)銀行的資本運(yùn)作與融資
- 慰問老師慰問信15篇
- 邏輯思維與職場成功的內(nèi)在聯(lián)系
- 結(jié)合地域文化的學(xué)校勞動教育實(shí)施策略
- 英語教學(xué)中的跨文化交際能力培養(yǎng)
- 文獻(xiàn)綜述在學(xué)術(shù)研究中的重要性
- 高效作業(yè)管理的關(guān)鍵要素探討
- 課件:曝光三要素
- 春節(jié)文化研究手冊
- 小學(xué)綜合實(shí)踐《我們的傳統(tǒng)節(jié)日》說課稿
- 《鋁及鋁合金產(chǎn)品殘余應(yīng)力評價方法》
- IATF-16949:2016質(zhì)量管理體系培訓(xùn)講義
- 記賬憑證封面直接打印模板
- 人教版八年級美術(shù)下冊全冊完整課件
- 北京房地產(chǎn)典當(dāng)合同
- 安慶匯辰藥業(yè)有限公司高端原料藥、醫(yī)藥中間體建設(shè)項(xiàng)目環(huán)境影響報告書
- 檔案工作管理情況自查表
- 畢業(yè)論文-基于51單片機(jī)的智能LED照明燈的設(shè)計
評論
0/150
提交評論