自定义异常类
异常也是个类,所以我们也可以自己自定义一个异常
每个项目都会有一个自定义异常,来完成自己的异常提醒
那么对于这个异常自己肯定要有个判断,是编译时异常 还是运行时异常
如果是运行时异常,一般继承RunTimeException
比如 : NullPointerException , 数组越界 , 类型转换异常等 一般是因为程序员粗心导致的错误
如果是编译时异常,一般继承Exception
比如 : IOException , FileNotFoundException 等,需要在编译阶段进行处理,否则就报错
我们写的自定义异常,一般是编译时异常
规定
1 必须继承一个已有的异常类,一般就是Exception/RunTimeExcetption
2 有一个公共的无参构造
3 有一个有参构造(字符串类型)
在构造方法中,使用super(...) 调用父类的构造方法,把String值进行传递
传入的String的值,就是错误信息
自定义异常类
public class NameLengthException extends Exception{
public NameLengthException() {
}
public NameLengthException(String mgs) {
super(mgs);
}
}
服务类
public class UserService {
public int m1(String name)throws NameLengthException{
if(name.length() < 6) {
// System.out.println("用户名长度不能小于六位");
throw new NameLengthException("少时诵诗书");
}
System.out.println("登录成功");
return 1;
}
}
测试类
public class Client {
public static void main(String[] args) {
UserService userService = new UserService();
//boolean b = userService.m1("123");
//if(b){
//TODO 响应客户 注册成功}
//else{
//TODO 响应客户 注册失败
//}
try {
userService.m1("123123");
//---成功
}catch(NameLengthException e) {
//---失败
}
}
}