10.2.2 Exception类及其子类

10.2.2 Exception类及其子类

图10-2所示为Exception类的继承关系。

Java的异常类都继承自Exception,如在SumUp.java程序中发生的三种类,ArrayIndex-OutOfBoundsException继承自IndexOutOfBoundsException、RuntimeException、Exception等等。只有Exception这种类及其派生类所产生的对象实体,才可丢给java的虚拟机器处理,也才可使用throw语句处理或作为catch语句的参数。

Java程序的异常类均继承自Exception类,让java程序能够处理异常情况。许多标准的异常是属于RuntimeException执行时的异常类,它是在执行方法时所产生的异常情况。

Exception的子类简单说明如下:

ClassNotFoundException

当应用程序试图载入某类而找不到时,会产生此例外。

CloneNotSupportedException

使用Object类中的clone()方法但并没安装Cloneable接口时,会产生此例外。

IllegalAccessException

当应用程序试图载入某类而权限不够时,会产生此例外。

InstantiationException

当应用程序试图建立一个对象实体而无法建立时(如接口或抽象类),会产生此例外。

InterruptedException

当应用程序使用线程在等待时别的线程要求执行时,会产生此例外。

NoSuchMethodException

找不到方法时会产生此例外。

RuntimeException

Java虚拟机器执行正常指令时所产生的例外。

ArithmeticException

算术运算所产生的例外,例如整数除以0。

ArrayIndexOutOfBoundsException

数组索引值小于0或大于数组长度时所产生的例外。

img431

图10-2 Exception类的继承关系图

ArrayStoreException

存入数组时类型不同所产生的例外。

ClassCastException

类强迫转型到其子类时,对象并非其子类对象所产生的例外。IllegalArgumentException

调用方法时所传参数类型错误所产生的例外。

IllegalMonitorStateException

线程等待对象的屏幕,但没有屏幕时所产生的例外。

IllegalStateException

执行时调用方法时所产生的例外。

IllegalThreadStateException

执行不合规定的线程时所产生的例外。

IndexOutBoundsException

索引值超出范围所产生的例外。

NegativeArraySizeException

试图建立负数个数元素的数组所产生的例外。

NullPointerException

所使用的对象其参考值为null所产生的例外。

NumberFormatException

字符串转换为数值时所产生的例外。

SecurityException

违反安全所产生的例外。

StringIndexOutBoundsException

字符串索引值超出范围所产生的例外。