




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、有關異常的題目異常使用注意事項:在Java中所有捕獲范圍小的異常必須放在捕獲大的異常之前,否則程序在編譯時會出現錯誤提示。如下面的程序:public class J_Testpublic static void main(String args)System.out.println("* 計算開始 *") ;int i = 0 ;/ 定義整型變量int j = 0 ;/ 定義整型變量tryString str1 = args0 ;/接收第一個參數String str2 = args1 ;/接收第二個參數i = Integer.parseInt(str1) ;/將第一個參數由
2、字符串變為整型j = Integer.parseInt(str2) ;/將第二個參數由字符串變為整型int temp = i / j ;/ 此處產生了異常System.out.println("兩個數字相除的結果:" + temp) ;System.out.println("-") ;catch(Exception e)/ 捕獲異常System.out.println("其他異常:" + e) ;catch(ArithmeticException e)/ 捕獲算術異常e.printStackTrace() ;System.out.pr
3、intln("* 計算結束 *") ;上面的程序在編譯時,會出現下面的編譯錯誤:J_Test.java:22: 已捕捉到異常 java.lang.ArithmeticException catch(ArithmeticException e) / 捕獲算術異常 1 錯誤4.17【填空題*】請填寫下面兩處空白使得下面的方法產生一個異常。void mb_method() 填空1 填空2 new Exception("Exception in mb_method()");/方法mb_method結束4.18【填空題*】運行下面的程序,結果一般會輸出 。(結果:
4、14)public class J_Test public static void main(String args) trySystem.out.print("1");if(true) return;catch(RuntimeException e1)System.out.print("2");return;catch(Exception e2)System.out.print("3");return;finallySystem.out.print("4");System.out.println("En
5、d!");/方法main結束/類J_Test結束上面的程序說明:如果try塊里有return語句,在執行這個return語句之前,先要執行finally塊里的語句,finally塊里的語句執行完后,再返回去執行try塊里的return語句,因為該return語句位于main方法,意味著從main方法返回,也就是程序結束。所以,finally塊后的語句System.out.println("End!");根本沒有執行到。如果把try塊里的語句if(true) return;注釋掉,則運行結果是 。(結果:14End!)4.19【填空題*】運行下面的程序,結果一般會輸
6、出 。(結果:1)public class J_Test public static void main(String args) trySystem.out.print("1");if(true) System.exit(0);catch(RuntimeException e1)System.out.print("2");return;catch(Exception e2)System.out.print("3");return;finallySystem.out.print("4");System.out.pr
7、intln("End!");/方法main結束/類J_Test結束上面的程序說明:如果try塊里有System.exit(0);語句,則不會去執行finally塊里的語句,程序直接退出。這也是return和exit在使用上的區別。4.20【填空題*】運行下面的程序,結果一般會輸出 。(運行結果:2:0,3:4,4:4,5:4,)public class J_Test public static void main(String args) int i=0;tryfor(i=0;i<10;i+)tryif(i%3=0) throw new Exception();Sys
8、tem.out.print("1:"+i+",");catch(Exception e1)System.out.print("2:"+i+",");i+=2;if(i%3=2) throw new Exception();return;finallyi*=2;System.out.print("3:"+i+",");/內部try-catch-finally結束/for循環結束catch(Exception e2)System.out.print("4:"+
9、i+",");return;finallySystem.out.print("5:"+i+",");/外部try-catch-finally結束System.out.println("End!");/方法main結束/類J_Test結束4.21【填空題*】閱讀下面的程序。(1)當輸入是“1 2 3 4”時,程序的輸出結果是 ;(結果:bcdn)(2)當輸入是“1 2 3”時,程序的輸出結果是 ;(結果:bcdn)(3)將程序的2326行刪除,則當輸入是“1 2 3 4”時,程序的輸出結果是 ;如果輸入是“1 2 3
10、”,則輸出結果是 。(結果:cmn,cmn)public class J_Testpublic static void main(String args) trymb_method1(args);catch(Exception e)System.out.print('m');System.out.print('n');/方法main結束static void mb_method1(String a)trymb_method2(a);System.out.print("a");catch(Exception e)System.out.print
11、("b");finallySystem.out.print("c");System.out.print("d");/方法mb_method1結束static void mb_method2(String a)System.out.println(aa.length);/方法mb_method2結束/類J_Test結束4.22【填空題*】參照下面的類間的繼承關系圖,寫出下面程序的輸出 。(結果:cmn)java.lang.Object java.lang.Throwable java.lang.Error java.lang.Excep
12、tionjava.io.IOException java.lang.RuntimeExceptionjava.lang.ArithmeticExceptionjava.lang.IndexOutOfBoundsException java.lang.ArrayIndexOutOfBoundsExceptionpublic class J_Testpublic static void main(String args) trymb_method();catch(Exception e)System.out.print('m');System.out.print('n
13、9;);/方法main結束static void mb_createException()throw new ArrayIndexOutOfBoundsException();/方法mb_createException()結束static void mb_method()trymb_createException();System.out.print("a");catch(ArithmeticException e)System.out.print("b");finallySystem.out.print("c");System.ou
14、t.print("d");/方法mb_method結束/類J_Test結束4.23【填空題*】參照下面的類間的繼承關系圖,寫出下面程序的輸出 。(結果:bcdn)java.lang.Object java.lang.Throwable java.lang.Error java.lang.Exceptionjava.io.IOException java.lang.RuntimeExceptionjava.lang.ArithmeticExceptionjava.lang.IndexOutOfBoundsException java.lang.ArrayIndexOutOfB
15、oundsExceptionpublic class J_Testpublic static void main(String args) trymb_method();catch(Exception e)System.out.print('m');System.out.print('n');/方法main結束static void mb_createException()throw new ArrayIndexOutOfBoundsException();/方法mb_createException()結束static void mb_method()trymb
16、_createException();System.out.print("a");catch(Exception e)System.out.print("b");finallySystem.out.print("c");System.out.print("d");/方法mb_method結束/類J_Test結束4.24【填空題*】下面程序輸出 。(結果:13423)public class J_Teststatic void mb_method(int i)tryif(i=1) throw new Exceptio
17、n();System.out.print("1");catch(Exception e)System.out.print("2");return;finallySystem.out.print("3");System.out.print("4");/方法mb_method結束public static void main(String args) mb_method(0);mb_method(1);/方法main結束/類J_Test結束4.25【填空題*】下面程序輸出 。(結果:134)public class J
18、_Testpublic static void mb_method()throw new RuntimeException();/方法mb_method結束public static void main(String args) trymb_method();catch(RuntimeException e)System.out.print("1");catch(Exception e1)System.out.print("2");finallySystem.out.print("3");System.out.print("
19、4");/方法main結束/類J_Test結束4.26【填空題*】運行下面的程序,并輸入字符'0',則運行結果為 。(結果:34)import java.io.*;class J_Exception extends Exception/類 J_Exception結束public class J_Testpublic static void main(String args) tryint i = System.in.read();if(i='0') throw new J_Exception();System.out.println("1&q
20、uot;);catch(IOException e)System.out.print("2");catch(J_Exception e)System.out.print("3");System.out.print("4n");/方法main結束/類J_Test結束4.27【填空題*】下面程序輸出 。 (結果:1245)public class J_Testpublic static void main(String args) trytryint i=1/0;catch(Exception e)System.out.print(&qu
21、ot;1");finallySystem.out.print("2");catch(Exception e)System.out.print("3");finallySystem.out.print("4");System.out.print("5n");/方法main結束/類J_Test結束4.28【填空題*】下面程序的輸出結果是 。 (結果:12345)public class J_Testpublic static void main(String args) trytryint i=1/0;cat
22、ch(Exception e)System.out.print("1");throw e;finallySystem.out.print("2");catch(Exception e)System.out.print("3");finallySystem.out.print("4");System.out.print("5n");/方法main結束/類J_Test結束4.64【選擇題*】下面程序的輸出結果是什么? (答案:C)(A)1(B)23(C)123(D)程序含有編譯錯誤public cl
23、ass J_Testpublic static void mb_method() throws Exceptiontrythrow new Exception();finallySystem.out.print("1");/方法mb_method結束public static void main(String args) trymb_method();catch(Exception e)System.out.print("2");System.out.print("3");/方法main結束/類J_Test結束4.65【選擇題*】關于
24、下面的程序,哪些結論是正確的?public class J_Testpublic static void main(String args) tryreturn;finallySystem.out.print("1");/方法main結束/類J_Test結束(A)上面程序含有編譯錯誤(B)上面程序在運行時會產生一個運行時異常(C)上面程序會正常運行,但不產生任何輸出(D)上面程序輸出“1”答案:D4.70【選擇題*】編譯運行下面的程序,結果是什么?public class J_Testpublic static void main(String args) trythrow
25、 new Exception();System.out.print("1");catch(Exception e)System.out.print("2");finallySystem.out.print("3");System.out.print("4n");/方法main結束/類J_Test結束(A)234(B)1234(C)2314(D)無法通過編譯答案:D4.72【選擇題*】關于下面的程序,哪些結論是正確的?public class J_Testpublic static int mb_method()tr
26、yreturn 1;catch(Exception e)return 2;finallyreturn 3;/方法mb_method結束public static void main(String args) System.out.println(mb_method();/方法main結束/類J_Test結束(A)程序可以通過編譯并正常運行,結果輸出“1”(B)程序可以通過編譯并正常運行,結果輸出“2”(C)程序可以通過編譯并正常運行,結果輸出“3”(D)程序無法通過編譯答案:C4.75【簡答題*】請分別簡述關鍵字throw和throws的用途,并分析它們之間的差別。自定義異常類創建類Compu
27、teGCD。該類中有一個計算兩個數的最大公約數的方法getGCD(int m , int n)。如果向該方法傳遞負整數,該方法就會拋出自定義異常MyException。請編程實現。步驟一:自定義異常類MyException,它是Exception的子類。/MyException.javapublic class MyException extends Exception String message;/* * 定義一個帶參數的構造方法,說明異常的有關信息 * param errorMessage */public MyException(String errorMessage) message
28、 = errorMessage;public String getMessage()/覆蓋父類的方法return message;步驟二:定義類ComputeGCD,使用異常類。/ComputeGCD.javapublic class ComputeGCD /* * 求m和n的最大公約數,結果由n返回 * param m * param n * return n * throws MyException */public static int getGCD(int m , int n) throws MyException if( m <= 0 | n <= 0) throw ne
29、w MyException("傳遞的參數不是正整數"); /拋出自定義異常 if(m < n)/m存放大數,n存放小數 int temp = 0; temp = m; m = n; n = temp; int r = m % n; while(r!=0)/輾轉相除法 m = n; n = r; r = m % n; return n; /返回最大公約數 public static void main(String args) try int m = 122 , n= 0;int reslut = getGCD(m,n); /此處產生異常System.out.println(m+" 和 "+n+"的最大共約數是:"+reslut); catch (MyException e) /捕捉自定義異常e.printStackTrace(); /打印異常跟蹤棧信息應通過該程序,學會自定義異常的使用。下面的程序與異常無關。作為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷碳板企業ESG實踐與創新戰略研究報告
- 農田水利設施建設企業縣域市場拓展與下沉戰略研究報告
- 太陽能源原動機維修企業縣域市場拓展與下沉戰略研究報告-20250401-223500
- 自由場固定觀測強震儀器企業縣域市場拓展與下沉戰略研究報告
- 道路通行服務企業縣域市場拓展與下沉戰略研究報告
- 石材加工機床企業數字化轉型與智慧升級戰略研究報告
- 商業用衡器企業縣域市場拓展與下沉戰略研究報告
- 原生鉈(礦產鉈)企業縣域市場拓展與下沉戰略研究報告
- 人美版一年級下冊《第3課 形形色色》教學設計
- 人美版一年級下冊《創意小手表》教學設計
- 工程施工聯系單范本完整版
- 施工單位現場動火證
- 回流爐操作作業指導書
- 棋牌興趣小組申請表
- 分公司變更登記申請書(樣表)
- 中國話劇史(本二·下)
- 執紀審查工作流程課件
- 普通診所污水、污物、糞便處理方案及周邊環境情況說明
- 四川省涼山州2022-2023學年八年級下學期期末道德與法治試題(含答案)
- 統編人教版高中政治(必修4)哲學與文化第7課第二框《正確認識中華傳統文化》優質說課稿
- 2023年新高考數學(新高考Ⅰ卷)真題評析及2024備考策略
評論
0/150
提交評論