【Java】自定义异常
自定义异常:
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】自定义异常相关推荐
- java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...
java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54] 简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...
- 用枚举来处理java自定义异常
用枚举来处理java自定义异常 参考文章: (1)用枚举来处理java自定义异常 (2)https://www.cnblogs.com/leskang/p/8119099.html 备忘一下.
- java自定义异常及异常的抛出
java自定义异常及异常的抛出 参考文章: (1)java自定义异常及异常的抛出 (2)https://www.cnblogs.com/gemiaomiao/p/11900564.html 备忘一下.
- java catch自定义异常_java异常类-java自定义异常-嗨客网
Java异常类教程 我们在 我们可以看到,在 Exception 表示的是程序中出现了问题,可以直接使用 try - catch 来捕获处理.Error 一般值 Java常见异常 类名 描述 IOEx ...
- Java自定义异常、全局捕获异常、拦截器 实现动态控制登录超时
Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 参考文章: (1)Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 (2)https://www.cnblogs.com/ ...
- 【知了堂学习笔记】java 自定义异常
[知了堂学习笔记]java 自定义异常 参考文章: (1)[知了堂学习笔记]java 自定义异常 (2)https://www.cnblogs.com/pipixiao/p/7419902.html ...
- java 自定义异常实例分析_Java自定义异常类的实例详解
Java自定义异常类的实例详解 为什么要自己编写异常类?假如jdk里面没有提供的异常,我们就要自己写.我们常用的类ArithmeticException,NullPointerException,Ne ...
- Java自定义异常类以及异常拦截器
Java自定义异常类以及异常拦截器 参考文章: (1)Java自定义异常类以及异常拦截器 (2)https://www.cnblogs.com/acm-bingzi/p/java_exception. ...
- Java自定义异常封装
Java自定义异常封装 前言:异常的分类 1.为什么要自定义异常封装? 2.自定义异常封装有哪些优点? 2.1 提高系统的友好性 2.2 提高系统的可维护性 2.3 解决Java异常机制自身的缺陷 3 ...
- java 自定义异常 好处,什么是自定义异常 自定义异常类有什么好处呢
自定义异常类有什么好处呢? .比如下面这个程序. using System; class ex : ApplicationExcept小编已经无语了,怪不得没人回答... 基本上是鸡同鸭讲,建议你去C ...
最新文章
- 干货 | 一文总结旋转目标检测全面综述:论文方法与代码
- 线段树分裂与合并 ---- 树上差分 P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并
- 寒门出贵子,传递正能量
- Java的API及Object类、String类、字符串缓存区
- syskey——让你的电脑更加安全
- Booting Android: bootloaders, fastboot and boot images
- mysql min怎么用_MySQL中MIN()函数的使用教程
- Boost - 序列化 (Serialization)
- 如何做嵌入式人工智能
- NLP《词汇表示方法(一)one-hot向量表示》
- 医药/医疗/互联网医疗平台/问诊/挂号/开药/处方/复诊/患者管理/开药问诊/视频问诊/电话问诊/图文问诊/医生端/医师认证/医院/药品/续方/常用处方/电子处方/抢单/接诊/退诊/预约/科室/开方
- es6删除数组某项_javascript基础系列:数组常用方法解析
- 杰出的橙色网站设计案例
- 易语言5.9 免狗完美版下载+安装教程
- android画a4矩形,将Android视图转换为A4大小的PDF
- 梯度(gradient)
- python调用百度地图,通过经纬度定位
- vlookup匹配的文字显示0_Excel | VLOOKUP函数使用详解
- python运动场地预约系统毕业设计开题报告
- linux增加elk用户,在Ubuntu 18.04 Bionic Beaver Linux上安装ELK
热门文章
- C语言 加减乘除运算
- Java练习题-09
- abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)
- 微信公众平台使用百度API查询天气预报
- Python爬虫——教你js逆向爬取网易云评论
- 程序员如何持续高收入、财务自由
- 08_EMS项目之需求分析与界面搭建
- python集合操作班级干部竞选演讲稿_【必备】竞选班干部演讲稿集合8篇
- 爱婴室主要股东再现减持:莫锐伟、王云亦是如此,业绩表现不理想
- 【机器学习】Unsupervised feature selection by regularized self-representation(RSR)