第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 *********/