• 【JavaSE】认识异常(下篇)


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

    🍊🍊系列专栏:【JavaSE】

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

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

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

    e88e29e927474e97a931dad0ce905da9.png

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

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

    1. public class LogIn {
    2.   private String userName = "lingchenqi";
    3.   private String password = "123456";
    4.   public static void loginInfo(String userName, String password) {
    5.     if (!this.userName.equals(userName)) {
    6. System.out.println("用户名错误!");
    7.    }
    8.     if (!this.password.equals(password)) {
    9. System.out.println("密码错误!");
    10.    }
    11.     System.out.println("登陆成功");
    12.  }
    13.   public static void main(String[] args) {
    14.     loginInfo("lingchenqi", "123456");
    15.  }
    16. }

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

    ⛴️⛴️解决方案:

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

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

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

    ababf7aa937a41079e8b12e971dde757.png

     3.异常类UserNameException

    1. public class PasswordException extends RuntimeException{
    2. public PasswordException(String message){
    3. super(message);
    4. }
    5. }

    4.异常类PasswordException

    1. public class UserNameException extends RuntimeException{
    2. public UserNameException(String message){
    3. super(message);
    4. }
    5. }

    5.实现类Login

    1. public class LogIn {
    2. private String userName = "lingchenqi";
    3. private String password = "123456";
    4. public void loginInfo(String userName, String password)
    5. throws UserNameException, PasswordException {
    6. try {
    7. if (!this.userName.equals(userName)) {
    8. throw new UserNameException("用户名错误!");
    9. }
    10. if (!this.password.equals(password)) {
    11. throw new PasswordException("密码错误!");
    12. }
    13. System.out.println("登陆成功");
    14. } catch (UserNameException e) {
    15. e.printStackTrace();
    16. } catch (PasswordException e) {
    17. e.printStackTrace();
    18. }
    19. }
    20. public static void main(String[] args) {
    21. LogIn login = new LogIn();
    22. login.loginInfo("lingchenqi","123456");
    23. }
    24. }

    运行结果1:登录成功时

    0a6d209b4fd94815b3efddab9348b9fb.png

     运行结果2:用户名错误

    dd07d510ccef47e1ba76e63b557a9bbe.png

     运行结果3:密码错误

    aec7b98275d64ce197d32eb36d1ac892.png

    🚦🚦注意:

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

  • 相关阅读:
    JeecgBoot 3.4.0 版本发布,微服务重构版本
    XrayGLM - 医学大模型
    RestTemplate请求头accept-encoding导致乱码
    猿创征文|Mybatis的注解实现复杂映射开发
    详解自动化测试之 Selenium
    Java中的lambda表达式如何理解——精简
    c++ 可变参数 log 打印函数实现
    java核心技术卷一 第3章 第11版
    CentOS部署Ferry系统
    spark任务,使用 repartition 对数据进行了重新分区,但任务输入数据大小仍存在不均衡
  • 原文地址:https://blog.csdn.net/m0_62426532/article/details/126650958