异常处理(6)自定义异常

异常处理(6)自定义异常类

1、自定义异常要求:

(1)要继承一个异常类型

 自定义一个编译时异常类型:自定义类继承java.lang.Exception

 自定义一个运行时异常类型:自定义类继承java.lang.RuntimeException

(2)建议大家提供至少两个构造器,一个是无参构造,一个是(String message)构造器。

(3)自定义异常需要提供serialVersionUID

自定义异常类的使用:

  1. 自定义异常最重要的是异常类的名字和message属性。当异常出现时,可以根据名字判断异常类型。比如:TeamException("成员已满,无法添加");
  2. 自定义异常对象只能手动抛出。抛出后由try-catch处理,也可以用throws给调用者处理。

例如:

public class MyException extends RuntimeException{public MyException() {}public MyException(String message) {super(message);}
}
public class Person {private String name;private int lifeValue;public Person() {}public Person(String name, int lifeValue) {this.name = name;setLifeValue(lifeValue);}public String getName() {return name;}public int getLifeValue() {return lifeValue;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", lifeValue=" + lifeValue +'}';}public void setLifeValue(int lifeValue) {if(lifeValue>=0)this.lifeValue = lifeValue;else {throw new MyException("This lifeValue couldn't be negative."+lifeValue);}}public static void main(String[] args) {Person p1 = new Person("Qum",18);System.out.println(p1.toString());Person p2 = new Person("Dit",-19999);System.out.println(p2.toString());}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/479673.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA:配置Serializable class without ‘serialVersionUID’ 找不到

在使用Java原生序列化的时候,serialVersionUID起到了一个类似版本号的作用,在反序列化的时候判断serialVersionUID如果不相同,会抛出InvalidClassException。 File -> Settings -> Editor -> Inspections -> 搜索 Serialization …

win10 禁止更新

一、winR 输入 regedit 二、输入注册列表路径: (1)计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings (2)按照格式,创建文件命名: FlightSettingsMaxPauseDays (3&…

OpenAI Whisper 语音识别 模型部署及接口封装

环境配置: 一、安装依赖: pip install -U openai-whisper 或者,以下命令会从这个存储库拉取并安装最新的提交,以及其Python依赖项: pip install githttps://github.com/openai/whisper.git 二、安装ffmpeg: cd …

springboot视频网站系统的设计与实现(代码+数据库+LW)

摘 要 使用旧方法对视频信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在视频信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。 这次开发的视频网站系统管理员功…

安装QT6.8(MSVC MinGW)+QT webengine+QT5.15.2

本篇主要针对只使用过QT5的qmake,没有用过MSVC,VS的老同学。 建议一部分一部分安装,全部勾选安装遇到问题会中断,前功尽弃。 我自己需要的是QT5,编出的软件用在公司设备上。 QT6:建议也安装学习&#xf…

自动驾驶目标检测融合全貌

1、early fusion 早期融合,特点用到几何空间转换3d到2d或者2d到3d的转换,用像素找点云或者用点云找像素。 2、deep fusion 深度融合,也是特征级别融合,也叫多模态融合,如bevfusion范式 3、late fusion 晚融合&#x…

Microsoft Excel如何插入多行

1.打开要编辑的excel表,在指定位置,鼠标右键点击“插入”一行 2.按住shift键,鼠标的光标箭头会变化成如下图所示 3.一直按住shift键和鼠标左键,往下拖动,直至到插入足够的行

node.js基础学习-http模块-创建HTTP服务器、客户端(一)

http模块式Node.js内置的模块,用于创建和管理HTTP服务器。Node.js使用JavaScript实现,因此性能更好。 使用http模块创建服务器,我们建议使用commonjs模块规范,因为很多第三方的组件都使用了这种规范。当然es6写法也支持。 下面就是…

2024御网杯信息安全大赛个人赛wp(misc方向)

目录 一.信息安全大赛的通知二、编码转换1. 第一部分2. 第二部分3. 第三部分 三、1.txt四、buletooth 题目附件以及工具链接: 通过网盘分享的文件:御网杯附件 链接: https://pan.baidu.com/s/1LNA6Xz6eZodSV0Io9jGSZg 提取码: jay1 –来自百度网盘超级会…

浅谈pdfbox2.0和pdfbox3.0的运用与区别

前言 Apache PDFBox 是一个开源的Java库,可以用来对PDF文档做一些基本操作,比如实际应用中的pdf读取、写入、合并、拆分、写文字、写图片、加水印等,甚至还应用到了电子签章。本文逐个介绍对pdf的操作,以备作为后续参考使用。 一…

《解锁计算机专业宝藏:核心编程语言与学习资料全解析》

在当今数字化浪潮汹涌澎湃、技术迭代日新月异的时代,计算机专业宛如一座蕴藏无尽宝藏与无限机遇的神秘殿堂🏰。对于莘莘学子而言,精准掌握核心编程语言,并手握优质学习资料,恰似寻得开启这扇殿堂大门的秘钥&#xff0c…

【计算机网络】多路转接之epoll

epoll也是一种linux中的多路转接方案(epoll也是只负责IO过程中的"等") 一、epoll相关接口的使用 1.epoll_create int epoll_create(int size); ​功能:创建一个epoll模型 ① int size:没意义了 >0就行 返回值:返回一个文件…

「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏

本篇将带你实现一个简单的数字猜谜游戏。用户输入一个数字,应用会判断是否接近目标数字,并提供提示“高一点”或“低一点”,直到用户猜中目标数字。这个小游戏结合状态管理和用户交互,是一个入门级的互动应用示例。 关键词 UI互…

Brain.js 用于浏览器的 GPU 加速神经网络

Brain.js 是一个强大的 JavaScript 库,它允许开发者在浏览器和 Node.js 环境中构建和训练神经网络 。这个库的目的是简化机器学习模型的集成过程,使得即使是没有深厚机器学习背景的开发者也能快速上手 。 概述 Brain.js 提供了易于使用的 API&#xff…

365天深度学习训练营-第P6周:VGG-16算法-Pytorch实现人脸识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 文为「365天深度学习训练营」内部文章 参考本文所写记录性文章,请在文章开头带上「👉声明」 🍺要求: 保存训练过…

预处理指令

1.预定义符号 预定义符号是在预处理阶段处理的。 1.__FILE__ // 进⾏编译的源⽂件 2.__LINE__ // ⽂件当前的⾏号 3.__DATE__ // ⽂件被编译的⽇期 4.__TIME__ // ⽂件被编译的时间 5.__STDC__ // 如果编译器遵循 ANSI C ,其值为 1 ,否则未定义…

Android 12.0新增自定义HIDL问题记录

代码 流程和代码可以参考这位大佬的 https://blog.csdn.net/learnframework/article/details/134621556 主要记录发现的问题以及解决方式。 1.首先最外层的bp不要使用update-makefiles.sh 去生成 ,基本上interface下面的文件夹都会被影响,可能会导致编…

(即插即用模块-Attention部分) 二十、(2021) GAA 门控轴向注意力

文章目录 1、Gated Axial-Attention2、代码实现 paper:Medical Transformer: Gated Axial-Attention for Medical Image Segmentation Code:https://github.com/jeya-maria-jose/Medical-Transformer 1、Gated Axial-Attention 论文首先分析了 ViTs 在训…

[C++ 核心编程]笔记 4.1 封装

4.1.1 封装的意义 封装是C面向对象三大特性之一 封装的意义: 将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制 封装意义一: 在设计类的时候,属性和行为写在一起,表现事物 语法: class 类名{ 访问权限: 属性 /行为 }…

韩顺平 一周学会Linux | Linux 实操篇-组管理和权限管理

一、Linux 组 1. 组基本介绍 在linux 中的每个用户必须属于一个组,不能独立于组外。在linux 中每个文件有所有者、所在组、其它组的概念。 2. 文件/目录 所有者 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。 1) 查看文件所有者&…