Java学习——42、错误和异常
程序不是一写就能够运行的,总会出现这样那样的错误,要实现程序的功能,必须能够改错。Java会提示错误,大部分的错误根据提示进行修改即可。但也有一些错误,是程序所修改不了的。
本文主要介绍可以代码中可以修改的,称为异常。
Java中的错误,根据其性质,可分为:错误和异常。
1、 错误
错误(error)指程序运行时遇到的硬件错误,或操作系统、虚拟机等软件错误,对程序而言是致命的,会导致程序无法运行。
如:当要使用另一个类的数据,包中却没有那个类的.class文件时,程序会报错,直接不能运行。
此类错误在程序中不能修改。
程序中能做出修改的是异常。
2、 异常
异常(exception)是指程序产生的运行错误。
比如:除数为0。
异常对于程序而言是非致命的,可在程序中进行修改,异常处理机制能够捕获和处理异常。
3、Java已有处理异常的类
Java.lang.Exception异常类是Java定义的所有异常类所构成的树层次结构的根类,其他异常类都是其的子类或后代类。
错误类:Errror和异常类Exception都是Throwable的子类。
有一些异常Java可以报:
(1) ArithmeticException
此为算术异常,比如除数为0时,就会报此异常,如下图所示:
提示说明/by zero,被0整除,出错。
(2) NullPointerException
此为空对象异常,比如对空数组进行操作时,会报此异常,如下图所示:
提示说明:变量没有被初始化。
在Java中数组必须先new然后才能被修改。
(3) ClassCastException
类型强制转换异常,如下图所示:
(4) NegativeArraySizeException
负数组长度异常,如果数组的长度为负数,会报此异常,如图所示:
(5) ArrayIndexOutOfBoundsException
下标越界异常。如果数组下标越界,就会产生此异常。如图所示:
当运行到i=3时,a[3]=4,正常输出,此时i++后,i=4,此时i是小于5的,要输出a[4],但数组a中只有四个元素,只能输入从a[0]到a[3],故会报此异常。
可能会出的异常很多,本文不可能一一列举,只是在遇到异常时,根据它的提示,做出正确的修改即可。