首页 理论教育 系统定义的异常类

系统定义的异常类

时间:2022-02-28 理论教育 版权反馈
【摘要】:系统定义的异常类有Error类、RuntimeException类和Exception类,它们分别代表某一类异常类型。由于这类错误通常是系统内部错误和资源耗尽错误等,它们一旦发生,程序员基本上是无能为力的,所以,一般情况下,程序员不去处理这类错误,而是由Java虚拟机将抛出的错误通知用户,并终止程序。它表示运行时因环境的影响而引发的异常,程序本身可以处理这些异常。

8.2.2 系统定义的异常类

系统定义的异常类有Error类、RuntimeException类和Exception类,它们分别代表某一类异常类型。

1.Error类及其子类

它表示灾难性的、普通程序很难恢复的错误,如动态链接错误、虚拟机错误等,如表8-1所示。由于这类错误通常是系统内部错误和资源耗尽错误等,它们一旦发生,程序员基本上是无能为力的,所以,一般情况下,程序员不去处理这类错误,而是由Java虚拟机将抛出的错误通知用户,并终止程序。它们虽然很严重,但很少发生。

表8-1 Error类

img497

2.RuntimeException类及其子类

它表示因程序设计或实现方面出现了问题,执行了错误操作,而让程序无法恢复运行的异常。如被0除错误、数组下标超范围等,如表8-2所示,这类异常可能导致产生错误的结果或操作系统错误,甚至整个系统瘫痪。由于这类异常是因程序设计或实现中出现问题而引起的,所以是能够避免的。

异常处理的一个原则是:能够避免的异常,坚决杜绝其发生。因此,应加强程序设计与调试,改正错误,避免异常的发生。一旦发生错误操作,Java虚拟机会在运行时抛出异常,交给缺省的异常处理程序去处理,一般是终止程序执行,避免其蔓延或产生更大的问题。程序错误不改,异常发生在所难免,而且异常处理没有意义。所以,一般情况下,程序员不去处理这类异常,而是修改程序、改正错误。当然,必要时,程序员可对其处理。

表8-2 RuntimeException类

img498

3.Exception类及其非RuntimeException子类

它表示运行时因环境的影响而引发的异常,程序本身可以处理这些异常。如输入输出异常、中断异常等,如表8-3所示,这类异常并非因设计或实现出现问题而引起的,是无法避免的。

异常处理的另一个原则是:不可能避免的异常,应该预先准备好处理措施,从而降低异常引起的损失。而且能够自已处理的异常尽量自己处理,自己实在处理不了的异常才求助于别人处理。因此,一般情况下,程序员应该充分预计所有可能出现的异常,提供相应的代码捕捉和处理。当程序运行时出现这类异常,应该尽快尽早进行异常处理,并且使程序恢复运行,而且不应该随意终止程序。

表8-3 Exception类及其非RuntimeException子类

img499

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

我要反馈