Java中的自定义异常
一、为什么要自定义异常
- 让异常有语义
- 例如:一个学生的年龄是6-80岁 如果输入的年龄不符合要求 就抛出一个自定义异常AgeException 这样就能清楚的了解异常类型
class Student{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
if (age < 6 || age > 80){
throw new AgeException("年龄不合法");
}
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
二、怎么自定义异常
- 写一个异常类继承Exception 、RuntimeException
- 添加一个错误的编码
- 重写toString 方法使错误编码输出
class AgeException extends RuntimeException{
private int cood = 101;
public AgeException(String message){
super(message);
}
@Override
public String toString() {
StackTraceElement[] stackTraceElements = super.getStackTrace();
String s = "";
for ( StackTraceElement st : stackTraceElements){
s += stackTraceElements.toString()+"\t";
}
return "AgeException{" +
"cood=" + cood +"\n"+s+
'}';
}
}