使用Java创建自己的异常子类

JAVA创建异常 如何使用JAVA创建一个异常类? 立即下载

Java知多少(53)使用Java创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。

Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,包括你创建的,都可以获得Throwable定义的方法。这些方法显示在表10-3中。你还可以在你创建的异常类中覆盖一个或多个这样的方法。

表 10-3 Throwable 定义的方法
方法 描述
Throwable fillInStackTrace( ) 返回一个包含完整堆栈轨迹的Throwable对象,该对象可能被再次引发。
String getLocalizedMessage( ) 返回一个异常的局部描述
String getMessage( ) 返回一个异常的描述
void printStackTrace( ) 显示堆栈轨迹
void printStackTrace(PrintStreamstream) 把堆栈轨迹送到指定的流
void printStackTrace(PrintWriterstream) 把堆栈轨迹送到指定的流
String toString( ) 返回一个包含异常描述的String对象。当输出一个Throwable对象时,该方法被println( )调用


下面的例子声明了Exception的一个新子类,然后该子类当作方法中出错情形的信号。它重载了toString( )方法,这样可以用println( )显示异常的描述。

复制代码
 1 // This program creates a custom exception type.
 2 class MyException extends Exception {
 3     private int detail;
 4     MyException(int a) {
 5         detail = a;
 6     }
 7 
 8     public String toString() {
 9         return "MyException[" + detail + "]";
10     }
11 }
12 
13 class ExceptionDemo {
14     static void compute(int a) throws MyException {
15         System.out.println("Called compute(" + a + ")");
16        if(a > 10)
17           throw new MyException(a);
18        System.out.println("Normal exit");
19     }
20 
21     public static void main(String args[]) {
22        try {
23            compute(1);
24            compute(20);
25         } catch (MyException e) {
26             System.out.println("Caught " + e);
27         }
28     }
29 }
复制代码

该例题定义了Exception的一个子类MyException。该子类非常简单:它只含有一个构造函数和一个重载的显示异常值的toString( )方法。ExceptionDemo类定义了一个compute( )方法。该方法抛出一个MyException对象。当compute( )的整型参数比10大时该异常被引发。


main( )方法为MyException设立了一个异常处理程序,然后用一个合法的值和不合法的值调用compute( )来显示执行经过代码的不同路径。下面是结果:
Called compute(1)
Normal exit
Called compute(20)
Caught MyException[20]

系列文章:
分类:  Java
标签:  Java
0
« 上一篇: Java知多少(52)内置异常
» 下一篇: Java知多少(54)断言详解
NSGA(非支配排序遗传算法) 在多目标优化问题中,往往存在多个相互冲突的目标需要同时优化。传统的单目标优化算法无法直接应用于这类问题,因此需要专门的多目标优化算法。非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm,NSGA)是一种经典的多目标优化算法,由印度科学家 Kalyanmoy Deb 等人于 1995 年提出。NSGA 通过非支配排序和拥挤度距离来引导种群向 Pareto 最优前沿进化,从而得到一组具有良好分布性和收敛性的 Pareto 最优解。 阅读详情

相关推荐

Unity开发微信小游戏,使用Addressables管理游戏资源(本地进行远程测试)

快速构建Unity微信小游戏 使用Addressables管理游戏资源 使用小皮助手在本地进行远程资源加载测试

the_vnas的博客 6391

11.创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。 Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所

311

数据分析:美团大赛的具体案例制作

在数据集中,存在三个变量的经纬度数据,分别是商家的经纬度数据('sender_lng', 'sender_lat'),顾客的经纬度数据('recipient_lng', 'recipient_lat')和骑手的经纬度数据('grab_lng', 'grab_lat')。根据结果可知,平台订单创建时间的中位数为2022-10-21 02:59:01,平台订单创建时间的众数为2022-10-19 03:29:41、2022-10-23 03:29:47,与直方图相符。接下来,我们对是否为预定订单变量进行分析。

m0_68269346的博客 2496

java语言中如何创建父类与子类

1、父类与子类区别:父类可以是一个具体的较大类事物,子类则是可以由父类衍生出来的事物。2、具体演示创建父类子类和使用。子类直接调用父类原有方法。

m0_74957478的博客 2503

【实战指南】OpenClaw Telegram 群聊不响应完整解决方案:从获取群 ID 到关闭隐私模式全流程

将整个从“获取群组 ID → 配置 OpenClaw Telegram 通道 → 关闭隐私模式 → 测试”的全流程都整合进去。

hampeter的博客 3489

【原创】SAP/Oracle 集团企业海外全球化实施注意事项: 一带一路本地化 (持续更新)...

ABC集团SAP的系统平台已经扩展到全球一百来个国家和地区,SAP系统平台的全球实施项目中, 当时是需要支持当地的业务和法律法规的合规要求。   当时客户也是缺乏当地的资源以及对当地法律法规和业务实践的了解,需要团队提供了全球化的支持,通过我们全球产品技术专家充分传递了各区域的本地化支持和实践 而且近年来我们发现一些国家和政府,陆续都在推出一些新的税改和合规的要求,接下来基于这些要求,我们全球...

weixin_34024034的博客 1143

java 创建子类_怎么建立java子类

建立java子类的方法:首先调用父类中的构造函数进行初始化;然后在父类初始化完毕后,对子类的属性进行显示初始化;最后进行子类构造函数的特定初始化。建立子类过程:Java在构造函数中,第一行会先调用父类中构造函数进行初始化。父类初始化完毕后,再对子类的属性进行显示初始化。进行子类构造函数的特定初始化。初始化完毕后,将地址值赋值给引用变量Person p。(视频教程推荐:java课程)本文附带建立子类...

weixin_42554162的博客 5622

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

java子类创建过程_Java中创建子类对象的执行流程分析

Java中创建子类对象的执行流程分析作者:冯老师,一、影响创建子类对象的几个因素Java中创建一个子类对象时,执行流程比较复杂,主要是由于构造器的重载、this关键字的使用、初始化块、继承及super关键字的存在。下面对这几个因素做个简单介绍。1.方法的重载Java中允许方法的重载,即同一个类中方法名相同,但参数个数不同或参数的类型不同。除了普通的类方法外,构造器也允许重载。且通过this关键字可...

weixin_36377635的博客 3360

Xilinx高级调试方法--远程调试

本文主要介绍Xilinx的一些高级调试方法,以及如何使用Xilinx的相关IP。

斌赋的博客 3308

OpenMVS :用 colmap制作自己的数据集 重建(用colmap计算位姿,将位姿转为MVS需要的格式)

数据集制作主要是在windows进行,比较方便。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3325

Java程序设计——异常类

一、什么是异常: 异常就是在运行时产生的问题。通常用Exception描述。 在java中,把异常封装成了一个类,当出现问题时,就会创建异常类对象并抛出异常相关的信息(如详细信息,名称以及异常所处的位置)。 二、 异常的结构 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出),Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。 三、异常与错误的区别: 异常是指程序在编译或者运行时出现的某种异......

Mr_John 7311

【YOLOv8科研级优化】集成YOLOv10的SCDown采样模块,让你的模型下采样更高效更精准

打开确保模型解析器能识别SCDown模块。通过将YOLOv10的SCDown模块集成到YOLOv8中,我们实现了一个“细节保留+高效下采样”的目标检测模型。这个改进不仅在工程上能提升小目标、细粒度场景的检测效果,更在科研上提供了“分阶段下采样”的创新思路——这种思路可以延伸到其他卷积网络(如ResNet、MobileNet)的下采样层改进中,帮你在论文中打造独特的研究点。

m0_71589036的博客 137

java在己有的类创子类怎么创_如何使用Java创建自己的异常子类

Java不知道学了多少课时了,你知道如何使用Java创建自己的异常子类吗,Java的内置异常处理有哪些常见的错误呢,今天IT培训网小编就来给大家详细介绍下吧:尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么...

weixin_42499800的博客 267

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java在己有的类创子类怎么创_使用Java创建自己的异常子类...

尽管java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,...

weixin_36438028的博客 144

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java 自定义异常路径_详解Java的内置异常以及创建自定义异常子类的方法

内置异常子类在标准包java.lang中,Java定义了若干个异常类。前面的例子曾用到其中一些。这些异常一般是标准类RuntimeException的子类。因为java.lang实际上被所有的Java程序引入,多数从RuntimeException派生的异常都自动可用。而且,它们不需要被包含在任何方法的throws列表中。Java语言中,这被叫做未经检查的异常(unchecked exceptio...

weixin_42188533的博客 302

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java入门教程-6.11使用Java创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。 Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所

芝麻软件工作室的专栏 245

Java如何恢复子类对象_使用Java创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,...

weixin_39896256的博客 100

java在己有的类创子类怎么创_使用Java创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,...

weixin_34217656的博客 207

java声明异常子类_Java知多少(53)使用Java创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,...

weixin_28903391的博客 168

Java知多少(53)使用Java创建自己的异常子类

尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,...

weixin_34288121的博客 90

NVIDIA GPU实战指南:从驱动安装到性能压榨与疑难排查

GPU作为现代并行计算的核心硬件,其强大的浮点运算能力使其在深度学习、科学计算和高性能计算领域不可或缺。其工作原理基于大规模并行架构,通过CUDA等编程模型将计算任务分解为数千个线程同时执行,从而实现对复杂计算任务的加速。这一技术价值在于显著提升了模型训练和推理的效率,推动了人工智能等领域的快速发展。在实际应用中,GPU环境配置是发挥其性能的基础,涉及驱动安装、CUDA工具链部署以及深度学习框架的集成。其中,驱动与CUDA版本的兼容性、显存管理以及多卡并行训练是工程实践中的关键挑战。本文聚焦于NVIDIA

weixin_34293246的博客 329

2020-02-22 使用Java创建自己的异常子类

先贴一段代码 // This program creates a custom exception type. class MyException extends Exception { private int detail; MyException(int a) { detail = a; } public String toString() { return "MyException[" + detail + "]"; } } c

Logodad的博客 214

Java中为什么子类重写父类方法时抛出的异常不能大于父类异常

见下方示例代码: import java.io.*; public class Father { public void father_function() throws IOException { new File("a.txt"); } } class Son extends Father { @Override public void father_function() ...

西城风雨楼 1万+
上一篇: 重载Throwable.fillInStackTrace方法已提高Java性能这样的做法对法?
下一篇: ESB与SOAP的关系
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值