自定义异常
格式:
public class 异常类名 extends Exception{
无参构造
有参构造
}
范例(分数异常):
public class ScoreException extends Exception {//注意继承关系
public ScoreException() {
}
public ScoreException(String message) {
super(message);//通过有参构造super方法传递到父亲有参构造赋值,最后调用相应方法返回你输入的字符串
}
}
throw和throws的区别
throw | throws |
---|---|
用在方法体内,跟的是异常对象名 | 用在方法声明上,跟的是异常类名 |
表示抛出异常,由方法体内处理 | 表示抛出异常,由方法调用者处理 |
执行throw一定抛出某种异常 | 表示出现异常的可能性,并不一定会发生这些异常 |
语句中有throw必有throws!!!!!
图文和代码所示:
图:
ScoreException(自定义异常类)
package CCom.Cnn;
public class ScoreException extends Exception {//注意继承关系
public ScoreException() {
}
public ScoreException(String message) {
super(message);//通过有参构造super方法传递到父亲的父亲有参构造赋值,最后通过相应方法返回你输入的字符串
}
}
TeacherTest(老师测试类)
package CCom.Cnn;
public class TeacherTest {
public void score(int a) throws ScoreException {
if(a<0||a>100){
throw new ScoreException("分数不合理");
}else{
System.out.println("合理分数范围");
}
}
}
Teacher(老师类)
package CCom.Cnn;
import java.util.Scanner;
public class Teacher {
public static void main(String[] args) {
System.out.println("请输入你所输入的分数");
Scanner s = new Scanner(System.in);
int score = s.nextInt();
try {
new TeacherTest().score(score);
} catch (ScoreException e) {
e.printStackTrace();
}
}
}
输出的结果:
请输入你所输入的分数
999
CCom.Cnn.ScoreException: 分数不合理
at CCom.Cnn.TeacherTest.score(TeacherTest.java:6)
at CCom.Cnn.Teacher.main(Teacher.java:11)