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或大于数组长度时所产生的例外。
图10-2 Exception类的继承关系图
ArrayStoreException
存入数组时类型不同所产生的例外。
ClassCastException
类强迫转型到其子类时,对象并非其子类对象所产生的例外。IllegalArgumentException
调用方法时所传参数类型错误所产生的例外。
IllegalMonitorStateException
线程等待对象的屏幕,但没有屏幕时所产生的例外。
IllegalStateException
执行时调用方法时所产生的例外。
IllegalThreadStateException
执行不合规定的线程时所产生的例外。
IndexOutBoundsException
索引值超出范围所产生的例外。
NegativeArraySizeException
试图建立负数个数元素的数组所产生的例外。
NullPointerException
所使用的对象其参考值为null所产生的例外。
NumberFormatException
字符串转换为数值时所产生的例外。
SecurityException
违反安全所产生的例外。
StringIndexOutBoundsException
字符串索引值超出范围所产生的例外。