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

相关文章
Java中的多线程实现及性能优化
【4月更文挑战第11天】本文将深入探讨Java中的多线程实现方法,包括继承Thread类、实现Runnable接口以及使用Executor框架。同时,我们将分析多线程中的性能瓶颈,并提出相应的优化策略,以提高程序的执行效率。
|
负载均衡 安全 Linux
在Linux中,什么是负载均衡,并且如何在Linux中实现它。
在Linux中,什么是负载均衡,并且如何在Linux中实现它。
|
消息中间件 SQL JSON
【大数据开发运维解决方案】Kylin消费Kafka数据流式构建cube
文章开始之前先说明环境情况,这里kylin消费的kafka数据是从Oracle 数据库用Ogg For Bigdata以json格式将数据投递到kafka topic的,投递的时候,关于insert和update 之前的数据投递到名为 ZTVOUCHER_INS 的topic,而delete和update之后的数据投递到名为 ZTVOUCHER_DEL 的topic中,这里主要介绍kylin如何消费数据创建流式cube。
【大数据开发运维解决方案】Kylin消费Kafka数据流式构建cube
|
移动开发 JavaScript 小程序
Uniapp+UviewUI实现购物商城
Uniapp+UviewUI实现购物商城
Uniapp+UviewUI实现购物商城
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
337 0
|
开发者
营销引擎 - 广告主如何使用借助营销引擎快速搭建的 DSP|学习笔记
快速学习营销引擎 - 广告主如何使用借助营销引擎快速搭建的 DSP
营销引擎 - 广告主如何使用借助营销引擎快速搭建的 DSP|学习笔记
|
SQL NoSQL 关系型数据库
|
IDE Java 编译器
Flink 1.11.x WatermarkStrategy 不兼容问题
最近群里的一个同学问了这么一个问题,在 Scala 代码中使用了 WatermarkStrategy ,代码在编译的时候会抛出异常,具体的报错信息如下: Error:Error:line (31)Static methods in interface require -target:jvm-1.8 .assignTimestampsAndWatermarks(WatermarkStrategy.forBoundedOutOfOrderness[String](Duration.ofSeconds(5))) 刚开始我以为是他的 JDK 版本设置的有问题,后来他说
Flink 1.11.x WatermarkStrategy 不兼容问题
|
JavaScript vr&ar
列表li排序去重的实现与优化
列表li排序去重的实现与优化
212 0
线性表的使用
线性表有这几个操作: 初始化函数 插入函数 删除函数 展示函数 销毁函数
157 0