当开发时,项目中出现了java中没有定义过的问题时,这时就需要我们按照java异常建立思想,将项目的中的特有问题也进行对象的封装。这个异常,称为自定义异常。
一般地,用户自定义异常类都是RuntimeException的子类。
自定义异常类通常需要编写几个重载的构造器。
自定义的异常类对象通过throw抛出。
自定义异常最重要的是异常类的名字,当异常出现时,可以根据名字判断异常类型。
自定义异常的步骤:
1)定义一个子类继承Exception或RuntimeException,让该类具备可抛性。
2)通过throw 或者throws进行操作。
示例:自定义异常类MyException,用于描述数据取值范围错误信息。自定义异常类必须继承现有的异常类。
public class TestMyException {
public void regist(int num) throws MyException {
if (num < 0)
throw new MyException("人数为负值,不合理", 3);
else
System.out.println("登记人数" + num);
}
public void manager() {
try {
regist(-1);
} catch (MyException e) {
System.out.println("登记失败,出错种类" + e.getId());
}
System.out.println("本次登记操作结束");
}
public static void main(String[] args) {
TestMyException t = new TestMyException();
t.manager();
}
}
class MyException extends Exception {
static final long serialVersionUID = 1L;
private int idnumber;
public MyException(String message, int id) {
super(message);
this.idnumber = id;
}
public int getId() {
return idnumber;
}
}
执行结果:
登记失败,出错种类3
本次登记操作结束