异常处理(6)自定义异常类
1、自定义异常要求:
(1)要继承一个异常类型
自定义一个编译时异常类型:自定义类继承java.lang.Exception。
自定义一个运行时异常类型:自定义类继承java.lang.RuntimeException。
(2)建议大家提供至少两个构造器,一个是无参构造,一个是(String message)构造器。
(3)自定义异常需要提供serialVersionUID
自定义异常类的使用:
- 自定义异常最重要的是异常类的名字和message属性。当异常出现时,可以根据名字判断异常类型。比如:TeamException("成员已满,无法添加");
- 自定义异常对象只能手动抛出。抛出后由try-catch处理,也可以用throws给调用者处理。
例如:
java
public class MyException extends RuntimeException{
public MyException() {
}
public MyException(String message) {
super(message);
}
}
public class Person {
private String name;
private int lifeValue;
public Person() {
}
public Person(String name, int lifeValue) {
this.name = name;
setLifeValue(lifeValue);
}
public String getName() {
return name;
}
public int getLifeValue() {
return lifeValue;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", lifeValue=" + lifeValue +
'}';
}
public void setLifeValue(int lifeValue) {
if(lifeValue>=0)
this.lifeValue = lifeValue;
else {
throw new MyException("This lifeValue couldn't be negative."+lifeValue);
}
}
public static void main(String[] args) {
Person p1 = new Person("Qum",18);
System.out.println(p1.toString());
Person p2 = new Person("Dit",-19999);
System.out.println(p2.toString());
}
}