




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)五 異常處理一、實(shí)驗(yàn)?zāi)康?. 學(xué)會(huì)利用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) ("這是一個(gè)異常處理的例子n"); try int i=10; i /=0; catch (ArithmeticExce
2、ption e) ("異常是:"+e.getMessage(); finally ("finally 語句被執(zhí)行"); l 編譯并運(yùn)行程序。 注意:如果在 catch 語句中聲明的異常類是 Exception,catch 語句也能正確地捕獲,這是因?yàn)?Exception是ArithmeticException的父類。如果不能確定會(huì)發(fā)生哪種情況的異常,那么最好指定catch的參數(shù)為 Exception,即說明異常的類型為 Exception。2、源文件是Demo3_2.java。要捕捉的異常是除數(shù)為零和數(shù)組下標(biāo)越界。通過修改a和c下標(biāo)值體驗(yàn)程序。publi
3、c class Demo3_2 public static void main (String args)int a, b;int c=1,2,3;try a=10; b=100/a; ("當(dāng)前a值:"+a); c2=200; ("當(dāng)前數(shù)組長(zhǎng):"+c.length); catch(ArithmeticException e) ("除零錯(cuò)誤:"+e); catch(ArrayIndexOutOfBoundsException e) ("數(shù)組下標(biāo)越界:"+e); finally ("我是finally&quo
4、t;); ("我能被正常執(zhí)行到");【思考】 先運(yùn)行上面程序,觀察運(yùn)行結(jié)果。 按下條件分別修改數(shù)據(jù),編譯后運(yùn)行,觀察輸出結(jié)果,分析在trycatch塊里那些語句沒有被執(zhí)行,為什么? 塊外那些語句可被執(zhí)行到,為什么?修改a=0, 保持c2=200;保持a=10,修改c3=200,修改a=0, 修改c3=200; 再添加一個(gè)catchException e ,位置在最前面,觀察編譯信息,說明什么?3、編寫Demo3_3.java 程序,計(jì)算兩數(shù)相除并輸出結(jié)果。使用兩個(gè)catch子句,分別捕捉除數(shù)為0的異常和參數(shù)輸入有誤異常。源代碼如下:import java.io.*;clas
5、s Demo3_3public static void main(String args ) tryBufferedReader strin=new BufferedReader ( new InputStreamReader(System .in);System .out .print("請(qǐng)輸入除數(shù):");String cl=strin .readLine();int a=Integer .parseInt(cl);System .out .print("請(qǐng)輸入被除數(shù):");cl=strin .readLine();int b=Integer .par
6、seInt(cl);int c=b/a;System .out .println("商為:"+c);catch(NumberFormatException e)System .out .println("請(qǐng)輸入整數(shù)!");/e .printStackTrace();/捕獲除數(shù)為0的異常catch(ArithmeticException e)System .out .println("除數(shù)不可以0!"); /e .printstackTrace(); /捕獲與I/O有關(guān)的異常catch(IOException e)e.printStac
7、kTrace(); /捕獲數(shù)值轉(zhuǎn)化時(shí)的異常,如不能將字符轉(zhuǎn)化成數(shù)值 編譯并運(yùn)行,當(dāng)輸入除數(shù)為0時(shí),將有異常出現(xiàn),當(dāng)輸入的不是整數(shù)時(shí),如將30輸成了3o,出現(xiàn)的是另一種異常。(二)自定義異常類4、注意throw、throws的使用。源文件是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 n
8、ew MyException();else return (x/y);public class Demo3_4 public static void main (String args) double z;DIV d=new DIV(); try z=d.div(100,0); ("當(dāng)前z值:"+z); catch(MyException e) (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語句注釋掉,觀察編譯信
9、息。 上面條件保持,在main函數(shù)后面加上throws MyException再重新編譯,能否通過?然后運(yùn)行觀察結(jié)果,得到什么結(jié)論?2編寫程序Demo3_5.java,包含自定義異常,當(dāng)輸入數(shù)值為13和4時(shí)拋出該異常。源代碼如下: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!&
10、quot;);else if(x=4)throw new Ex3_5("I dont like 4!");else System .out.println(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)行,分別
11、取消注釋上面程序中被注釋的語句。當(dāng)釋放a.setX(13)語句后,查看運(yùn)行結(jié)果,當(dāng)釋放a.setX(4)語句后,查看運(yùn)行結(jié)果,當(dāng)釋放a.setX(0)語句后,查看運(yùn)行結(jié)果。四、實(shí)驗(yàn)練習(xí)題1、編寫Java程序,創(chuàng)建數(shù)組后,對(duì)數(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("請(qǐng)輸入創(chuàng)建數(shù)組的個(gè)數(shù):n"); String cl=strin.readLine(); int a=Integer .parseInt(cl); System.out.println("數(shù)組創(chuàng)建完畢!您要查找那個(gè)元素?n"); String c2=strin.read
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省張家口市萬全縣2025年數(shù)學(xué)三下期末檢測(cè)模擬試題含解析
- 吉林醫(yī)藥學(xué)院《社會(huì)保險(xiǎn)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆玉樹藏族自治州雜多縣數(shù)學(xué)三下期末經(jīng)典試題含解析
- 沈陽北軟信息職業(yè)技術(shù)學(xué)院《數(shù)字成像技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆第二醫(yī)學(xué)院《人工智能導(dǎo)論實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津科技大學(xué)《市場(chǎng)調(diào)查與預(yù)測(cè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 婁底市雙峰縣2025屆三下數(shù)學(xué)期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 新疆財(cái)經(jīng)大學(xué)《食品工程原理一》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海第二工業(yè)大學(xué)《算法分析與設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽體育學(xué)院《可視化軟件》2023-2024學(xué)年第二學(xué)期期末試卷
- 同濟(jì)大學(xué)信紙
- 門式鋼架廠房設(shè)計(jì)
- 口腔模型的灌制-醫(yī)學(xué)課件
- 煤礦班組建設(shè)實(shí)施方案
- (完整word版)新《中華頌》朗誦稿
- 糖尿病健康教育及飲食指導(dǎo)
- PFMEA模板完整版文檔
- 三無曲線(有緩)繩正法撥道自動(dòng)計(jì)算表
- 教學(xué)能力比賽決賽 《英語》教案
- 《母雞》課件 王崧舟 千課萬人 (圖片版不可編輯)
- 離婚糾紛證據(jù)清單
評(píng)論
0/150
提交評(píng)論