定义自己的异常-Java基础知识点

发布于 2018-02-01 10:40  编辑:盘子
0
计算机等级考试题库 扫码微信刷题

定义自己的异常

定义自己的异常类有两个基本的原因:

在标准异常发生时,希望增加一些信息,那么你叮以重新抛出你自己的异常类对象来完成这项操作。

在你的代码中利用出现的错误状态保证特殊异常类的辨别。

然而,你应该记住在抛出异常时会产生大量的开销,因此,对于"正常地"恢复你期望频繁执行的代码来说,这并不是一种很有效的方法。如果你恢复的代码要被经常地执行,就不应该把它放置在catch块中,而是用一个if-then-else循环。


让我们看看如何创建自己的异常。


定义一个异常类

在你定义异常类时。一定要把Throwable作为超类,否则是不允许的。虽然你可以从任何的标准异常类中派生出新的异常类,但是最好的策略还是从Exception类派生。这将使得编译器能够跟踪程序中抛出这类异常的位置,检查它们被捕获了,还是在一个方法中声明抛出它。如果你使用RuntimeException或者它的一个子类,编译器将检查你的异常类的catch块是否将被禁止。

让我们完成一个例子,看看如何定义一个异常类:

public class BreadfulProblemException extends Exception

{

//Constructors

public DreadfulProblemException()( ) //Default constructor

public DreadfulProblemException(String s)

{

super(s); //Call the base class constructor

}

}

这是你应该提供的最少代码。按照惯例,异常类应该包括一个默认的构造函数和一个参数为String对象的构造函数。超类Exception中存储的信息(事实上,这些信息在Exception的超类Throwable中)将自动地用类名进行初始化,而无论你的类对象使用的是哪一个构造函数。传递给第二个构造函数的String将添加到类名的后面形成异常对象中存储的信息。

当然,你也可以增加一些其他的构造函数,通常,你在标准异常抛出后抛出自己的异常时特别希望这样做。除此之外,最典型的是你想要把实例变量加到存储问题额外信息的类中,再附加一方法来在catch块的代码中获取这些数据。因为你的异常类最终派生于Throwable类,所以它将自动地能够使用跟踪栈。






考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看


本文网址:http://www.k51.com.cn/info/jsjdjks/1802/0126168.html
选择分享到: