自定义错误类:
package test;
public class MyException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
public MyException(String message, int id) {
super(message);
this.id = id;
}
public int getId() {
return id;
}
}
测试类:
package test;
public class TestMyException {
public static void main(String[] args) {
new TestMyException().manager();
}
/**
* 调用注册方法
*/
public void manager() {
try {
regist(-20);// 注册
} catch (MyException e) {
System.out.println("出错代码:" + e.getId() + "\t出错的原因:"
+ e.getMessage());
//e.getMessage()的方法是在Throwable里面定义的,只要构造方法里面
//有super(message);那么e.getMessage()就是获取的被构造方法设置进去的值
}
}
/**
* 定义注册方法
* 解释:出错的抛出肯定是因为触发了错误
* 否则出错也是不知道何时抛出的,就比如说
* 自定义的错误而言如果不去检测num<0那么
* 我们也不知道何时才会出现这种情况,何时
* 才需要抛出错误的
* @param num
* @throws MyException
*/
public void regist(int num) throws MyException {
//处理意外情况,抛出错误
if (num < 0) {
throw new MyException("人数不能为负", 3);
}
System.out.println("注册成功");
}
}
自定义错误类:package test;public class MyException extends Exception { /** * */ private static final long serialVersionUID = 1L; private int id; public MyException(String message, int id) { ...