【JavaSE】自定义异常
1. 基本概念
- 当程序中出现了某些“错误”,但该错误信息并没有在
Throwable
子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息。
2. 自定义异常的步骤
- 定义类:自定义异常类名(程序员自己写的)继承
Exception
或RuntimeException
- 如果继承
Exception
,属于编译异常(程序员必须要处理的异常) - 如果继承
RuntimeException
,属于运行异常(一般继承RuntimeException
)
3. 自定义异常的应用实例
- 当接收
Person
对象年龄时,要求范围在18-120
之间,否则抛出一个自定义异常(要求继承RuntimeException
),并给出提示信息。
自定义异常
1. 一般情况下,自定义异常是继承 RuntimeException
2. 即把自定义异常当做 运行时异常,好处是:可以使用默认的处理机制
3. 即比较方便
public class CustomException {public static void main(String[] args) {int age = 1;if (!(age >= 18 && age <= 120)) {//这里可以通过构造器,设置异常信息throw new AgeException("年龄需要在18-120之间");}System.out.println("你的年龄范围是正确的");}
}//自定义的异常
//1. 一般情况下,自定义异常是继承 RuntimeException
//2. 即把自定义异常当做 运行时异常,好处是:可以使用默认的处理机制
//3. 即比较方便
class AgeException extends RuntimeException {public AgeException(String message) {//构造器super(message);}
}
输入在 18-120 之间后:
当自定义异常继承
Exception
时,AgeException
就是个编译异常,必须显示处理下,否则就会报错
所以,一般自定义异常继承
RuntimeException
,即把自定义异常当做 运行时异常,可以使用默认的处理机制。
【JavaSE】自定义异常相关推荐
- SpringBoot自定义异常源码分析
SpringBoot自定义异常源码分析 在类上加ControllerAdvice注解,在方法上加ExceptionHandler注解,就可以在方法里处理相应的异常. 1.自定义异常处理类Additio ...
- javaSE知识点汇总
javaSE知识点汇总 Java基础知识精华部分 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实 ...
- 【JavaSE进阶(上)】自学笔记 记得收藏时时回顾
final关键字 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4clTw5g-1649075023636)(https://cdn.nlark.com/yuque/ ...
- Java学习笔记(二)JavaSE
Markdown学习(方便写笔记记录,推荐文本编辑器Typora),文件后缀xxx.md 标题:# 一级标题,## 二级标题,最多六级标题 字体:**粗体**,*斜体*,***斜体加粗***,~~删除 ...
- javaSE 笔记全!
Java基础 基本操作 dos(Disk Operating System)命令行的简单操作 dir(directory):列出当前目录下的文件及文件夹 md(make directory):创建目录 ...
- JavaSE阶段笔记
JavaSE 一.Java编程基础 ①.数据类型 基本数据类型 数值型(int,long) 字符型(char) 布尔型(boolean) 引用数据类型 类(class) 接口(interface) 数 ...
- JAVASE知识点整理(超万字)
本文章只写每个知识点的例句,想了解具体的,请到JavaSE目录查看 javaSE阶段各知识点 javaSE阶段各知识点 一.环境配置 1 JDK环境变量path配置作用: 2 JDK,JRE,JVM的 ...
- JavaSE基础知识回顾
文章目录 JavaSE 一.前言 1.1.解决大家的疑惑 1.2.Java和Python的抉择 1.3.走进Java 二.预科 2.1.学习准备:博客 2.2.MarkDown 2.3.基本Dos命令 ...
- JavaSE基础阶段学习笔记
MarkDown学习 标题 三级标题 四级标题 字体 hello,word! hello,word! hello,word! hello,word! 引用 选择狂神说Java,走向人生巅峰 分割线 图 ...
- JAVASE详解(上篇)
JAVASE(上篇)详解 1. 常量和变量 2. 基本数据类型 2.1. 基本数据类型的转换 2.1.1. 自动转换 2.1.2. 强制转换 3. 运算符 3.1. 算数运算符 3.1.1. 四则运算 ...
最新文章
- ubuntu for nvidia-drivers for AI
- oracle交流 提问,Oracle常见提问5(转)
- 经信局推荐 | 网易智慧企业多产品入选《杭州市支持企业远程办公助力复工防疫产品和服务目录》!...
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- idea调试怎么跳出循环_IDEA调试技巧条件断点实现步骤详解
- C#软件设计——小话设计模式原则之:接口隔离原则ISP
- matlab 矩阵引用,MATLAB矩阵生成、引用
- vagrant up 慢的解决方案
- spark、hadoop 问题合集
- 天涯明月刀服务器位置都在哪里,天涯明月刀手游新手服务器大区选择攻略 平民去哪个区最好...
- Linux下安装Eclipse的PHP插件(PHPEclipse)
- #151: 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-x...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)
- 信息安全实验:信息摘要函数的设计与验证
- 中国的各地节日美食都又哪些
- 如何传播一个会议--给Open Party的建议
- 人大金仓助力广东省首届信创职业技能竞赛圆满完成
- Unity学习 — VideoPlayer控制视频播放、暂停、上下选择播放!
- 【贪心】数列极差问题
- 金融时间序列分析——学习金融时间序列之间的时序关系