package com.test;/** * @author shusheng * @description * @Email shusheng@yiji.com * @date 2018/10/10 21:15 ** java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。 * 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类, * 就必须继承自Exception或者RuntimeException *
* 两种方式: * A:继承Exception * B:继承RuntimeException *//** *java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。 *而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类, * 就必须继承自Exception或者RuntimeException * *两种方式: *A:继承Exception *B:继承RuntimeException *//**自定义异常: 考试成绩必须在 0-100 之间 很明显 java 没有对应的异常,需要我们自己来做一个异常自定义异常 继承自 Exception:编译要检查 继承自 RuntimeException:编译和运行都要检查*/public class MyException extends Exception { public MyException() { } public MyException(String message) { super(message); }}
package com.test;/** * @author shusheng * @description * @Email shusheng@yiji.com * @date 2018/10/10 21:16 */public class Teacher { // 针对MyException继承自Exception,编译时会检查,未处理的需要抛出 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 com.test;import java.util.Scanner;/** * @author shusheng * @description * @Email shusheng@yiji.com * @date 2018/10/10 21:14 */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(); } }}