/*
* 异常注意事项:
* A:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
* B:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
* C:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
*/
/*
* java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。
* 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException
*
* 两种方式:
* A:继承Exception
* B:继承RuntimeException
自定义异常类
1 package cn.itcast_08; 2 3 /* 4 * java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。 5 * 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException 6 * 7 * 两种方式: 8 * A:继承Exception 9 * B:继承RuntimeException 10 */ 11 public class MyException extends Exception { 12 public MyException() { 13 } 14 15 public MyException(String message) { 16 super(message); 17 } 18 } 19 20 // public class MyException extends RuntimeException { 21 // 22 // }
老师类(定义一个调用方法)
package cn.itcast_08; public class Teacher { public void check(int score) throws MyException { if (score > 100 || score < 0) { throw new MyException(\"分数必须在0-100之间\"); } else { System.out.println(\"分数没有问题\"); } } // 针对MyException继承自RuntimeException // public void check(int score) { // if (score > 100 || score < 0) { // throw new MyException(); // } else { // System.out.println(\"分数没有问题\"); // } // } }
自定义异常测试类
package cn.itcast_08; import java.util.Scanner; /* * 自定义异常测试类 */ public class StudentDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(\"请输入学生成绩:\"); int score = sc.nextInt(); Teacher t = new Teacher(); try { t.check(score); } catch (MyException e) { e.printStackTrace(); } } }
来源:https://www.cnblogs.com/ztg-java-xuexi/p/16075432.html
本站部分图文来源于网络,如有侵权请联系删除。