第1關:Java 中的異常處理機制
1、選擇題:
-
1、在Java中,源文件
Test.java中包含如下代碼段,則程序編譯運行結果是( )public class HelloWorld{ public static void main(String[] args){ System.out.print(“HelloWorld!”); } }
-
2、下列關於檢測性異常和非檢測性異常正確的是( )
-
3、關於下列代碼,說法正確的是()
public static void main(String[] args){ int num1 = 10; int num2 = 0; System.out.println(num1/num2); }
2、答案:
B ACE D
第2關:捕獲異常
1、編程要求:
編輯器中的代碼運行時可能會有異常,請利用本關知識處理該異常。
2、測試效果:
補充完代碼后,點擊測評,平台會對你編寫的代碼進行測試,當你的結果與預期輸出一致時,即為通過。
輸入: 4 2
輸出: 2
輸入: 4 0
輸出: 除數不能為0
3、代碼展示:
package step2; import java.util.Scanner; public class Task { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); int num2 = sc.nextInt(); /********* Begin *********/ try{ int b =num1/num2; }catch(ArithmeticException e){ System.out.println("除數不能為0"); } System.out.println(num1/num2); /********* End *********/ } }
第3關:拋出異常
1、編程要求:
異常的拋出和處理。
2、測試效果:
補充完代碼后,點擊測評,平台會對你編寫的代碼進行測試,當你的結果與預期輸出一致時,即為通過。
預期輸出:該文件不存在。
3、代碼展示:
package step3; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Task { /********* Begin *********/ //請在合適的部位添加代碼 public static void main(String[] args) throws FileNotFoundException { test(); } public static void test() throws FileNotFoundException { File file = new File("abc"); if(!file.exists()){ //判斷文件是否存在 //文件不存在,則 拋出 文件不存在異常 throw new FileNotFoundException("該文件不存在"); }else{ FileInputStream fs = new FileInputStream(file); } } /********* End *********/ }
第4關:自定義異常
1、編程要求:
定義一個自定義異常,判斷用戶名是否小於三位,如果用戶名小於三位,就拋出一個自定義異常。
2、測試效果:
補充完代碼后,點擊測評,平台會對你編寫的代碼進行測試,當你的結果與預期輸出一致時,即為通過。
輸入:
admin
輸出:
用戶名格式正確
輸入:
ab
輸出:
Exception in thread "main" step4.MyException: 用戶名小於三位Exception at step4.Task.main(Task.java:13)
注意:因為拋出異常時會顯示行號,請在13行拋出異常,否則評測可能不通過。
3、代碼展示:
package step4; import java.util.Scanner; public class Task { /********* Begin *********/ public static void main(String[] args) throws MyException{ Scanner sc = new Scanner(System.in); String username = sc.next(); //判斷用戶名 char[] chs = username.toCharArray();//字符串轉字符數組 if(chs.length <3){ throw new MyException("用戶名小於三位Exception"); }System.out.print("用戶名格式正確"); } } class MyException extends Exception{ public MyException(String m){ super(m); } } /********* End *********/
