理论教育 Java异常类结构:Java程序设计实用教程

Java异常类结构:Java程序设计实用教程

时间:2023-11-21 理论教育 版权反馈
【摘要】:图10.2Java中异常类的层次结构图从图10.2可以看出,异常类和其他类的超类都是Object,第二层是Throwable类,其下有两个子类:Error和Exception,它们分别代表不同类型的异常。Java.lang、java.util、java.io和java.net中定义的异常类都是非运行时异常。Java编译器要求Java程序必须捕获或声明所有的非运行时异常,如FileNotFoundException、IOException等,因为如果不对这类异常进行处理,可能会带来意想不到的后果。因此,Java编译器要求程序必须捕获或者声明这种异常。表10.1常见异常类列表

Java异常类结构:Java程序设计实用教程

前面提到Java采用面向对象的方法进行异常处理,所有异常类都是从Throwable类继承而来的,它们的层次结构如图10.2所示。

图10.2 Java中异常类的层次结构图

从图10.2可以看出,异常类和其他类的超类都是Object,第二层是Throwable类,其下有两个子类:Error和Exception,它们分别代表不同类型的异常。Error及其子类通常用来描述Java运行时系统的内部错误以及资源耗尽的错误,例如系统崩溃、动态链接失败、虚拟机错误等,这类错误一般认为是无法恢复和不可捕获的,程序不需要处理这种异常,出现这种异常的时候应用程序中断;Exception类是应该被程序捕获的异常,如果要创建自定义异常类型,则这个自定义异常类型也应该是Exception的子类。Exception下面又有两个分支,分别是运行时异常和其他异常。运行时异常代表运行时由Java虚拟机生成的异常,它是指Java程序在运行时发现的由Java解释器引发的各种异常,例如算数运算异常ArithmeticException、数组越界异常ArrayIndex OutOf BoundsException等;其他则为非运行异常,是指由编译器在编译时检测是否会发生在方法执行中的异常,例如IOException等。Java.lang、java.util、java.io和java.net中定义的异常类都是非运行时异常。(www.daowen.com)

Java编译器要求Java程序必须捕获或声明所有的非运行时异常,如FileNotFoundException、IOException等,因为如果不对这类异常进行处理,可能会带来意想不到的后果。因此,Java编译器要求程序必须捕获或者声明这种异常。但对于运行时异常可以不做处理,因为这类异常事件的生成是很普遍的,如果要求程序全部对这类异常做出处理可能对程序的可读性和高效性带来不好的影响,因此,Java编译器允许程序不对它们做出处理。常见的一些异常见表10.1。

表10.1 常见异常类列表

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

我要反馈