自定义异常:

java提供的异常类,不够我们使用,需要自己定义一些异常类

格式:

public class XXException extends Exception|RuntimeException{

添加一个空参数的构造方法

添加一个带异常信息的构造方法

}

注意:

1.自定义异常类一般是以Exception结尾,说明该类是一个异常类

2.自定义异常类,必须继承Exception或者RuntimeException

继承Exception:那么自定义的异常类就是一个编译期异常,如果出现了编译期异常就必须处理,要么throws ,要么try catch

继承RuntimeException:那么自定义的异常就是一个运行期异常,无需处理,交给虚拟机处理,中断处理。

练习:我们模拟用户操作,如果已经存在该用户就提示错误,如果没有存在就提示成功了

分析:

1.使用数组保存已经注册过的用户名(数据库)

2.使用Scanner获取用户输入的注册的用户名(前端,页面)

3.定义一个方法,对用户输入的用户名进行判断

遍历已经注册的用户名数组,获取每一个用户名

使用获取到的用户名和用户输入的用户名比较

true:

用户名已经存在,抛出RegisterException异常,告知用户“亲,该用户名已经被注册”

false:

继续遍历数组

如果循环结束了,还没有找到重复的用户名,提示用户“恭喜您,注册成功!”

自定义MyException类

扩展Exception接口,可以自定义输出的语句

package test;import java.util.Scanner;public class MyException extends Exception{//添加一个空参数的构造方法public MyException() {super();}//添加一个带异常信息的构造方法//查看源码发现,所有异常类都会有一个带异常信息的构造方法,方法内部调用父类异常信息的构造方法,//让父类处理public MyException(String message){super(message);}}
package test;import java.util.Scanner;public class DemoMyException {static String[] s = {"张三","李四","王五"};public static void main(String[] args) throws Exception{System.out.println("请输入用户名:");Scanner sc = new Scanner(System.in);String user = sc.next();checkName(user);}public static void checkName(String username) throws MyException{for(String name: s){if(username.equals(name)){throw new MyException("亲,该用户名已经被注册了!");}}System.out.println("恭喜您,注册成功!");}}

这里是Exception编译异常,所以必须要处理,因此在checkName里面会throw抛给原MyException类处理

2.如果是Extends runtimeException 可以不用throw 直接给JVM处理,如下图

【Java】自定义异常相关推荐

  1. java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...

    java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54]  简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...

  2. 用枚举来处理java自定义异常

    用枚举来处理java自定义异常 参考文章: (1)用枚举来处理java自定义异常 (2)https://www.cnblogs.com/leskang/p/8119099.html 备忘一下.

  3. java自定义异常及异常的抛出

    java自定义异常及异常的抛出 参考文章: (1)java自定义异常及异常的抛出 (2)https://www.cnblogs.com/gemiaomiao/p/11900564.html 备忘一下.

  4. java catch自定义异常_java异常类-java自定义异常-嗨客网

    Java异常类教程 我们在 我们可以看到,在 Exception 表示的是程序中出现了问题,可以直接使用 try - catch 来捕获处理.Error 一般值 Java常见异常 类名 描述 IOEx ...

  5. Java自定义异常、全局捕获异常、拦截器 实现动态控制登录超时

    Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 参考文章: (1)Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 (2)https://www.cnblogs.com/ ...

  6. 【知了堂学习笔记】java 自定义异常

    [知了堂学习笔记]java 自定义异常 参考文章: (1)[知了堂学习笔记]java 自定义异常 (2)https://www.cnblogs.com/pipixiao/p/7419902.html ...

  7. java 自定义异常实例分析_Java自定义异常类的实例详解

    Java自定义异常类的实例详解 为什么要自己编写异常类?假如jdk里面没有提供的异常,我们就要自己写.我们常用的类ArithmeticException,NullPointerException,Ne ...

  8. Java自定义异常类以及异常拦截器

    Java自定义异常类以及异常拦截器 参考文章: (1)Java自定义异常类以及异常拦截器 (2)https://www.cnblogs.com/acm-bingzi/p/java_exception. ...

  9. Java自定义异常封装

    Java自定义异常封装 前言:异常的分类 1.为什么要自定义异常封装? 2.自定义异常封装有哪些优点? 2.1 提高系统的友好性 2.2 提高系统的可维护性 2.3 解决Java异常机制自身的缺陷 3 ...

  10. java 自定义异常 好处,什么是自定义异常 自定义异常类有什么好处呢

    自定义异常类有什么好处呢? .比如下面这个程序. using System; class ex : ApplicationExcept小编已经无语了,怪不得没人回答... 基本上是鸡同鸭讲,建议你去C ...

最新文章

  1. 干货 | 一文总结旋转目标检测全面综述:论文方法与代码
  2. 线段树分裂与合并 ---- 树上差分 P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并
  3. 寒门出贵子,传递正能量
  4. Java的API及Object类、String类、字符串缓存区
  5. syskey——让你的电脑更加安全
  6. Booting Android: bootloaders, fastboot and boot images
  7. mysql min怎么用_MySQL中MIN()函数的使用教程
  8. Boost - 序列化 (Serialization)
  9. 如何做嵌入式人工智能
  10. NLP《词汇表示方法(一)one-hot向量表示》
  11. 医药/医疗/互联网医疗平台/问诊/挂号/开药/处方/复诊/患者管理/开药问诊/视频问诊/电话问诊/图文问诊/医生端/医师认证/医院/药品/续方/常用处方/电子处方/抢单/接诊/退诊/预约/科室/开方
  12. es6删除数组某项_javascript基础系列:数组常用方法解析
  13. 杰出的橙色网站设计案例
  14. 易语言5.9 免狗完美版下载+安装教程
  15. android画a4矩形,将Android视图转换为A4大小的PDF
  16. 梯度(gradient)
  17. python调用百度地图,通过经纬度定位
  18. vlookup匹配的文字显示0_Excel | VLOOKUP函数使用详解
  19. python运动场地预约系统毕业设计开题报告
  20. linux增加elk用户,在Ubuntu 18.04 Bionic Beaver Linux上安装ELK

热门文章

  1. C语言 加减乘除运算
  2. Java练习题-09
  3. abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)
  4. 微信公众平台使用百度API查询天气预报
  5. Python爬虫——教你js逆向爬取网易云评论
  6. 程序员如何持续高收入、财务自由
  7. 08_EMS项目之需求分析与界面搭建
  8. python集合操作班级干部竞选演讲稿_【必备】竞选班干部演讲稿集合8篇
  9. 爱婴室主要股东再现减持:莫锐伟、王云亦是如此,业绩表现不理想
  10. 【机器学习】Unsupervised feature selection by regularized self-representation(RSR)