首页 理论教育 用户自定义的异常类

用户自定义的异常类

时间:2022-02-28 理论教育 版权反馈
【摘要】:系统定义的异常主要用来处理可以预见的较常见的运行错误。对于某个应用所特有的运行错误,则需要编程人员根据程序的特殊逻辑,在用户程序里自己定义异常类,适时抛出并处理这个特有的运行错误。在何时何地发生,可将它定义为运行时异常,否则定义成非运行时异常,即Exception的子类,以产生受检查的异常。自定义异常类的格式为:·public Exception创建包含指定异常详细消息的新异常对象。 设计用户自定义异常类。

8.2.3 用户自定义的异常类

系统定义的异常主要用来处理可以预见的较常见的运行错误。对于某个应用所特有的运行错误,则需要编程人员根据程序的特殊逻辑,在用户程序里自己定义异常类,适时抛出并处理这个特有的运行错误。

创建用户自定义异常时,一般需要完成如下工作:

(1)定义一个新的异常类,一般作为Throwable或Exception类的子类,不作为Error的子类,因为Error通常被用来表示系统内部的严重故障。

(2)为新的异常类定义属性和方法,或隐藏父类的属性和覆盖父类的方法,使这些属性和方法能够体现该类所对应的错误信息。

一个自定义异常类,如果它所对应的异常事件通常是在运行时产生,而且不容易预测它将

在何时何地发生,可将它定义为运行时异常,否则定义成非运行时异常,即Exception的子类,以产生受检查的异常。自定义异常类的格式为:

img500

为了更好地继承Exception类,首先要了解Exception类的属性和方法。

(1)Exception类的4个重载的构造方法

·public Exception()创建新异常对象。

·public Exception(String message)创建包含指定异常详细消息的新异常对象。字符串参数message,描述异常对象的详细消息。

·public Exception(Throwable cause)创建包含指定原因的新异常对象。引用变量参数cause(原因),描述导致新异常对象抛出的异常对象。

·public Exception(String message,Throwable cause)创建包含指定异常详细消息和指定原因的新异常对象。

(2)Exception类常用的方法

·public String toString()返回当前异常对象的简短描述。格式为:“此异常的类名:异常的本地化描述”。

·public String getMessage()返回描述当前异常对象的详细消息字符串。

·public void printStackTrace()在屏幕上输出当前异常对象使用堆栈的轨迹,即程序中先后调用了哪些方法,使得运行过程中产生了这个异常对象。

·public Throwable getCause()返回当前异常对象的原因(cause);如果cause不存在或未知,则返回null。

·public Throwable initCause(Throwable cause)将当前异常对象的原因(cause)初始化为指定值。

【例8-3】 设计用户自定义异常类。这样,当出现计算负数的平方根时,可输出提示信息:用户自定义异常类名:输入错误!。

img501

思考与分析:MyExceptionClass只是用户自定义类,不能单独运行。它继承了Exception,使它成为受检查异常;覆盖Exception类的toString()方法,能更好地描述当前异常对象的信息;自定义构造方法中的super(″输入错误!+″x=″+x+″,当x的平方根为负数时引发了自定义异常。″);语句,用来调用父类Exception的构造方法,这样,当出现计算负数的平方根时,可通过当前异常对象的getMessage()方法得到该错误信息的详细描述。

【例8-4】 设计用户自定义异常类。当出现小时不在0~23范围之内或分秒不在0~59范围之内的情况时,可输出提示信息。

img502

只有定义了用户自定义异常类,程序才有可能去抛出这种类型的异常,进而捕获并处理这种类型的错误。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈