41JAVA中的异常----自定义异常

1.为什么需要自定义异常类

JAVA中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据我们自己业务的情况来定义异常类。

2.什么是自定义异常类

在开发中根据自己的业务定义的异常类
自定义一个业务逻辑异常:RegisterException一个注册异常类

3.异常类如何定义

  • 自定义一个编译期异常:自定义类并继承于java.lang.Exception
  • 自定义一个运行期的异常类:自定义类并继承于java.long.RuntimeException

4.自定义异常的练习

要求:我们模拟注册操作,如果用户名已存在,则抛出异常并提示:亲,该用户名已经被注册。
首先定义一个登录异常类RegisterException:

// 业务逻辑异常
public class RegisterException extends Exception {
    /**
     * 空参构造
     */
    public RegisterException() {
    }

    /**
     *
     * @param message 表示异常提示
     */
    public RegisterException(String message) {
        super(message);
    }
}

模拟登陆操作,使用数组模拟数据库中存储的操作,并提供当前注册账号是否存在方法用于判断

public class Demo {
    // 模拟数据库中已存在账号
    private static String[] names = {"bill","hill","jill"};
   
    public static void main(String[] args) {     
        //调用方法
        try{
              // 可能出现异常的代码
            checkUsername("nill");
            System.out.println("注册成功");//如果没有异常就是注册成功
        }catch(RegisterException e){
            //处理异常
            e.printStackTrace();
        }
    }

    //判断当前注册账号是否存在
    //因为是编译期异常,又想调用者去处理 所以声明该异常
    public static boolean checkUsername(String uname) throws LoginException{
        for (String name : names) {
            if(name.equals(uname)){//如果名字在这里面 就抛出登陆异常
                throw new RegisterException("亲"+name+"已经被注册了!");
            }
        }
        return true;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44787898/article/details/104001815