java培训教程分享:Java中用户如何自定义异常?
我们在学习java技术的时候应该有了解过,在java中是定义了很多的异常类的,虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在设计divide()方法时不允许被除数为负数。为了解决这样的问题,Java允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。接下来通过一个案例来学习自定义异常的创建,如例4-35所示。
java培训教程分享:Java中用户如何自定义异常?
//下面的代码是自定义一个异常类继承自 Except ion
public DivideByMinusException extends Exception
public DivideByMinusException (){
super () //调用Exception无参的构造方法
}
public DivideByMinusException (String message){
//调用 Exceptlon有参的构造方法
}
}
在实际开发中,如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中使用super()语句调用Exception的构造方法即可。
既然自定义了异常,那么该如何使用呢?这时就需要用到throw关键字,在程序指定位置通过throw关键字抛出自定义的异常对象,然后对抛出的异常进行异常处理。
接下来重新对例4-33中的divide()方法进行改写,在divide()方法中判断被除数是否为负数,如果为负数,就是用throw关键字向调用者抛出自定义的DivideByMinusException异常对象,如例4-36所示。
例4-36 Example36.java
public class Exanple36 (
//下面的方法实现了两个整数相除
public static int divide(int x,int y) throws DivideByMinuaException{
if (y ==0){
//使用throw关键字声明异常对象
throw new DivideByMinuaException("除数是0")
}
int result. =x / yL; //定义一个变量resulc记录两个散相除的结果
return result; //将结果返回
publlc static void main(String[] args) {
try {
int result =divide (4, 0);
System.out.println(result);
} catch (DivideByMinuaException e) {
Syatem.out.println(“捕获的异常信息为:" +e.getMesaage()):
}
}
}
运行结果如下图所示:
例4-36中,divide()方法通过逻辑判断对除法运算的除数是否为0进行了判断,如果除数为0就使用throw关键字抛出自定义的DivideByMinusException异常对象,然后通过throws关键字抛出异常,并在最后通过try…catch语句捕获异常。从图4-40可以看出,程序执行后判断出除数为0,抛出了指定的异常信息。
以上就是为大家介绍的关于“Java中用户如何自定义异常?”的java培训教程,想要了解更多java设计培训的具体课程内容,就加入千锋教育的java设计交流群吧-811099962,群内会有专职的老师为你答疑解惑。另外群内不定期还会有免费直播课,由现役的讲师来授课。
猜你喜欢LIKE
相关推荐HOT
更多>>java两个日期比较相差多少天
在Java中,可以使用`java.time`包下的类来比较两个日期之间相差的天数。以下是一个示例代码:importjava.time.LocalDate;importjava.time.tempo...详情>>
2023-06-27 17:19:00find命令查找文件
"find"命令是在Unix、Linux和类似系统中使用的一个非常强大的命令,用于在文件系统中查找文件和目录。它可以根据各种条件进行搜索,并提供了灵...详情>>
2023-06-16 14:00:30如何添加Java环境变量
要添加Java环境变量,请按照以下步骤进行操作:1.打开计算机的控制面板。2.点击"系统和安全"(Windows10及更高版本)或"系统"(Windows7和较早版本...详情>>
2023-06-08 09:31:10随机函数rand怎么使用
rand是一个C++的函数,用于产生一个随机数。以下是使用rand的方法:1.头文件:需要包含stdlib.h或cstdlib头文件以使用rand函数。2.使用rand()函...详情>>
2023-04-20 15:47:10什么是面向对象编程?面向对象有什么特性
面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程范式,它将数据和操作数据的方法组合成一个单独的实体,称为“对象”,并且对...详情>>
2023-03-17 15:30:11Java培训问答更多>>
新Java行业疑惑解答:Java的内存管理是如何工作的?
新java script是什么?为什么要学java script
新java和大数据哪个好?未来哪个职业发展更好
新java培训班多久能学会?培训周期大概多久
新java script和java的区别有哪些?如何区分
新java script的数据类型主要有哪些?怎样学的更快
新c语言与java区别在哪里?去培训机构学哪个比较好
Java面试题库 更多>>
华为外包java面试题-Java实现单链表的逆序
Java程序员面试题
Java面试题及答案
什么是线程的上下文切换?
如何撤销已经推送(push)到远端仓库的提交(commit)信息?
你了解哪些加密算法?
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区