10.3.1 Java中的异常

10.3.1 Java中的异常

Java中定义了一些常见异常,这些是系统预定义的,它们的处理由系统自动执行。常见的几个异常有:

1.ArithmeticException算术异常

整数除法中,如果除数为0,则发生该类异常。Java虚拟机遇到这样的错误时会自动终止程序的执行流程,并新建一个ArithmeticException类的对象,即抛出一个算术运算异常。例如下面的程序将引发ArithmeticException异常。

img432

2.NullPointerException空指针异常

如果一个对象还没有实例化,那么访问该对象或调用它的方法将导致NullPointerException异常。因此使用一个变量前,要先检查一下它是否为null。例如:

img433

第一行创建了有4个元素的数组im,每个元素是image类型的,系统为其进行初始化,每个元素中的值为null,表明它还没有指向任何实例。第二行要访问im[0],由于访问的是还没有进行实例化的空引用,因此导致NullPointerException异常。

3.NegativeArraySizeException

按常规,数组的元素个数应是一个大于等于0的整数,不应该是一个负数。创建数组时,如果元素个数是负数,则会引发NegativeArraySizeException异常。

4.ArrayIndexOutOfBoundsException数组下标越界异常

Java把数组看作对象,并用length变量记录数组的大小。访问数组元素时,运行时环境根据length值检查下标的大小。如果数组下标越界,则将导致ArrayIndexOutOfBounds-Exception异常。

5.SecurityException安全异常

该类异常一般在浏览器内抛出。若Applet试图进行下述操作,则由SecurityManager类抛出异常。

• 访问本地文件。

• 打开一个套接口,而不是返回提供Applet的主机。

• 在运行时环境中运行另一个程序。

除上述异常之外,常见异常有:

img434