1. 基本概念

  • 当程序中出现了某些“错误”,但该错误信息并没有在Throwable子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息。

2. 自定义异常的步骤

  1. 定义类:自定义异常类名(程序员自己写的)继承ExceptionRuntimeException
  2. 如果继承Exception,属于编译异常(程序员必须要处理的异常)
  3. 如果继承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】自定义异常相关推荐

  1. SpringBoot自定义异常源码分析

    SpringBoot自定义异常源码分析 在类上加ControllerAdvice注解,在方法上加ExceptionHandler注解,就可以在方法里处理相应的异常. 1.自定义异常处理类Additio ...

  2. javaSE知识点汇总

    javaSE知识点汇总 Java基础知识精华部分   写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实 ...

  3. 【JavaSE进阶(上)】自学笔记 记得收藏时时回顾

    final关键字 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4clTw5g-1649075023636)(https://cdn.nlark.com/yuque/ ...

  4. Java学习笔记(二)JavaSE

    Markdown学习(方便写笔记记录,推荐文本编辑器Typora),文件后缀xxx.md 标题:# 一级标题,## 二级标题,最多六级标题 字体:**粗体**,*斜体*,***斜体加粗***,~~删除 ...

  5. javaSE 笔记全!

    Java基础 基本操作 dos(Disk Operating System)命令行的简单操作 dir(directory):列出当前目录下的文件及文件夹 md(make directory):创建目录 ...

  6. JavaSE阶段笔记

    JavaSE 一.Java编程基础 ①.数据类型 基本数据类型 数值型(int,long) 字符型(char) 布尔型(boolean) 引用数据类型 类(class) 接口(interface) 数 ...

  7. JAVASE知识点整理(超万字)

    本文章只写每个知识点的例句,想了解具体的,请到JavaSE目录查看 javaSE阶段各知识点 javaSE阶段各知识点 一.环境配置 1 JDK环境变量path配置作用: 2 JDK,JRE,JVM的 ...

  8. JavaSE基础知识回顾

    文章目录 JavaSE 一.前言 1.1.解决大家的疑惑 1.2.Java和Python的抉择 1.3.走进Java 二.预科 2.1.学习准备:博客 2.2.MarkDown 2.3.基本Dos命令 ...

  9. JavaSE基础阶段学习笔记

    MarkDown学习 标题 三级标题 四级标题 字体 hello,word! hello,word! hello,word! hello,word! 引用 选择狂神说Java,走向人生巅峰 分割线 图 ...

  10. JAVASE详解(上篇)

    JAVASE(上篇)详解 1. 常量和变量 2. 基本数据类型 2.1. 基本数据类型的转换 2.1.1. 自动转换 2.1.2. 强制转换 3. 运算符 3.1. 算数运算符 3.1.1. 四则运算 ...

最新文章

  1. ubuntu for nvidia-drivers for AI
  2. oracle交流 提问,Oracle常见提问5(转)
  3. 经信局推荐 | 网易智慧企业多产品入选《杭州市支持企业远程办公助力复工防疫产品和服务目录》!...
  4. php基础系列:从用户登录处理程序学习mysql扩展基本操作
  5. idea调试怎么跳出循环_IDEA调试技巧条件断点实现步骤详解
  6. C#软件设计——小话设计模式原则之:接口隔离原则ISP
  7. matlab 矩阵引用,MATLAB矩阵生成、引用
  8. vagrant up 慢的解决方案
  9. spark、hadoop 问题合集
  10. 天涯明月刀服务器位置都在哪里,天涯明月刀手游新手服务器大区选择攻略 平民去哪个区最好...
  11. Linux下安装Eclipse的PHP插件(PHPEclipse)
  12. #151: 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-x...
  13. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)
  14. 信息安全实验:信息摘要函数的设计与验证
  15. 中国的各地节日美食都又哪些
  16. 如何传播一个会议--给Open Party的建议
  17. 人大金仓助力广东省首届信创职业技能竞赛圆满完成
  18. Unity学习 — VideoPlayer控制视频播放、暂停、上下选择播放!
  19. 【贪心】数列极差问题
  20. 金融时间序列分析——学习金融时间序列之间的时序关系

热门文章

  1. 接入支付宝支付接口,以及SDK用法,Thinkphp6。
  2. python元组是什么意思_python元组是什么意思
  3. java微信扫一扫_java调用微信扫一扫
  4. 【文献调研】SLAM方向综述性论文
  5. 小公司老板的日常管理
  6. Python 一个好用到爆炸的IP端口扫描工具类
  7. 3d打印材料有哪几种
  8. Guava 操作 集合
  9. neural networks logistic regression 神经网络逻辑回归
  10. android sqlite 示例,Android SQLite数据库操作示例