【JavaSE】认识异常(下篇)

简介: 【JavaSE】认识异常(下篇)

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

🍊🍊系列专栏:【JavaSE】

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

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

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

   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 的异常默认是非受查异常。

相关文章
|
14天前
|
Java 程序员 API
JavaSE—异常处理深入了解(一)
JavaSE—异常处理深入了解(一)
|
2月前
|
监控 Java 程序员
【JavaSE】基础笔记 - 异常(Exception)
【JavaSE】基础笔记 - 异常(Exception)
29 1
|
2月前
|
监控 Java
JAVASE---异常知识补充
Java异常处理涉及关键字try, catch, finally, throw, throws。示例中展示了如何处理`ArithmeticException`。在`Demo01`,尝试除以零并主动抛出异常,通过不同catch块捕获。`Demo02`中,方法`test`可能抛出异常,并通过`throws`声明。`Test`用try-catch处理除零错误,并将异常转换为`RuntimeException`。自定义异常可通过继承`Exception`类实现,流程包括创建异常类、抛出异常对象、捕获处理异常。
19 1
|
2月前
|
Java UED
JavaSE&异常
JavaSE&异常
11 1
|
7月前
|
监控 Java 程序员
|
9月前
|
安全 Java 数据安全/隐私保护
【JavaSE专栏70】自定义异常,用户根据自己的需求创建的异常类
【JavaSE专栏70】自定义异常,用户根据自己的需求创建的异常类
|
10月前
|
存储 监控 Java
【javaSE】 万字带你认识异常
【javaSE】 万字带你认识异常
|
10月前
|
Java 程序员
JavaSE 异常
JavaSE 异常
23 0
|
12月前
|
Java 数据安全/隐私保护
JavaSe-异常
JavaSe-异常
|
Java 程序员 数据库
【JavaSE】学习异常
【JavaSE】学习异常