【JavaSE】认识异常(下篇)

发布于:2023-01-01 ⋅ 阅读:(354) ⋅ 点赞:(0)

✨hello,进来的小伙伴们,你们好呐!✨

🍊🍊系列专栏:【JavaSE】

🍰🍰作者简介:一名双非本科大三的科班在读小白,我很平凡,学会努力!

🍵🍵给大家推荐一个很好用的刷题找工作平台——牛客网!

点击链接注册,开启刷题之路!

e88e29e927474e97a931dad0ce905da9.png

 ✈️✈️接着上篇,我们认识到了什么是异常,。以及如何处理异常,那么在我们的学习过程中,可能会遇到出了系统给出的其他的异常,那么这个时候我们就可以通过自定义异常来检测程序出现的问题。

⛵⛵实例:模拟实现自定义异常登录

public class LogIn {
  private String userName = "lingchenqi";
  private String password = "123456";
  public static void loginInfo(String userName, String password) {
    if (!this.userName.equals(userName)) {
        System.out.println("用户名错误!");
   }
    if (!this.password.equals(password)) {
        System.out.println("密码错误!");
   }
    System.out.println("登陆成功");
 }
  public static void main(String[] args) {
    loginInfo("lingchenqi", "123456");
 }
}

🛰️🛰️此时我们在处理用户名密码错误的时候可能就需要抛出两种异常. 我们可以基于已有的异常类进行扩展(继承), 创建和我们业务相关的异常类.

⛴️⛴️解决方案:

1. 自定义异常类,然后继承自Exception 或者 RunTimeException。
2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因。

1.首先我们把代码放在一个包下,这样看起来方便一点,我们新建一个包GetException.

2.在这个包下有三个类一个是我们的实现类 还有两个是我们自定义的异常类。

ababf7aa937a41079e8b12e971dde757.png

 3.异常类UserNameException

public class PasswordException extends RuntimeException{
    public PasswordException(String message){
        super(message);
    }
}

4.异常类PasswordException

public class UserNameException extends RuntimeException{
    public UserNameException(String message){
        super(message);
    }
}

5.实现类Login

public class LogIn {
    private String userName = "lingchenqi";
    private String password = "123456";

    public void loginInfo(String userName, String password)
            throws UserNameException, PasswordException {
        try {
            if (!this.userName.equals(userName)) {
                throw new UserNameException("用户名错误!");
            }
            if (!this.password.equals(password)) {
                throw new PasswordException("密码错误!");
            }
            System.out.println("登陆成功");
        } catch (UserNameException e) {
            e.printStackTrace();
        } catch (PasswordException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        LogIn login = new LogIn();
        login.loginInfo("lingchenqi","123456");
    }
}

运行结果1:登录成功时

0a6d209b4fd94815b3efddab9348b9fb.png

 运行结果2:用户名错误

dd07d510ccef47e1ba76e63b557a9bbe.png

 运行结果3:密码错误

aec7b98275d64ce197d32eb36d1ac892.png

🚦🚦注意:

自定义异常通常会继承自 Exception 或者 RuntimeException。
继承自 Exception 的异常默认是受查异常。
继承自 RuntimeException 的异常默认是非受查异常。

本文含有隐藏内容,请 开通VIP 后查看