1. 自定义异常:
考试成绩必须在0-100之间 很明显java没有对应的异常,需要我们自己来做一个异常
自定义异常
继承自Exception
继承自RuntimeException
下面是一个代码示例:
package cn.itcast_08; /* * java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。 * 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException * * 两种方式: * A:继承Exception * B:继承RuntimeException */ public class MyException extends Exception { public MyException() { } public MyException(String message) {//这里自定义的异常如果我们不知道怎么利用构造方法赋值,就追随到父类(平级类)源代码看人家怎么处理 super(message); } } // public class MyException extends RuntimeException { // // }
Teacher类:
1 package cn.itcast_08; 2 3 public class Teacher { 4 public void check(int score) throws MyException { 5 if (score > 100 || score < 0) { 6 throw new MyException("分数必须在0-100之间"); 7 } else { 8 System.out.println("分数没有问题"); 9 } 10 } 11 12 // 针对MyException继承自RuntimeException 13 // public void check(int score) { 14 // if (score > 100 || score < 0) { 15 // throw new MyException(); 16 // } else { 17 // System.out.println("分数没有问题"); 18 // } 19 // } 20 }
测试类:
1 package cn.itcast_08; 2 3 import java.util.Scanner; 4 5 /* 6 * 自定义异常测试类 7 */ 8 public class StudentDemo { 9 public static void main(String[] args) { 10 Scanner sc = new Scanner(System.in); 11 System.out.println("请输入学生成绩:"); 12 int score = sc.nextInt(); 13 14 Teacher t = new Teacher(); 15 try { 16 t.check(score); 17 } catch (MyException e) { 18 e.printStackTrace(); 19 } 20 } 21 }
运行结果是: