package com.test;
/**
* @author shusheng
* @description
* @Email shusheng@yiji.com
* @date 2018/10/10 21:15
* <p>
* java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。
* 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,
* 就必须继承自Exception或者RuntimeException
* <p>
* 两种方式:
* 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();
}
}
}