java之自定义异常
概述
- 问:为什么需要自定义异常类?
- 答:业务千变万化,总有些异常是java语言没有定义好的,这时候就需要自定义异常。比如年龄负数的问题,比如性别问题等等等等。
如何自定义异常
- 自定义编译异常: 继承
java.lang.Exception
。 - 自定义运行异常: 继承
java.lang.RuntimeException
。
简单演示
模拟注册操作,如果用户名已存在,则抛出异常并提示:亲,账号【】已经被注册。
代码示例:
public class Demo01 {
// 模拟数据库中已存在的账号
private static String[] names = {"IronMan","spiderMan",};
public static void main(String[] args) {
try{
//checkUsername("Layman");
checkUsername("spiderMan");
System.out.println("注册成功");
}catch(RegisterException e){
e.printStackTrace();
}
}
/**
* 验证注册的账号是否存在
*/
public static boolean checkUsername(String username) throws RegisterException {
for (String name : names) {
if(name.equals(username)){
throw new RegisterException("亲,账号【"+ username+ "】已经被注册了!");
}
}
return true;
}
}
//自定义编译异常
class RegisterException extends Exception {
//空参构造
public RegisterException() {
}
//有参构造
public RegisterException(String message) {
super(message);
}
}