cafuc Java 有關異常題目_第1頁
cafuc Java 有關異常題目_第2頁
cafuc Java 有關異常題目_第3頁
cafuc Java 有關異常題目_第4頁
cafuc Java 有關異常題目_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論