1定义
程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。异常本身是一个对象,产生异常就是产生了一个异常对象。如果不捕获异常,程序将在发生异常代码的地方中断,导致应用退出,而捕获异常后,程序将跳过异常代码,执行后续代码。
2异常的分类
所有的异常都继承自类Throwable,它下面又细分为Error和Exception
Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常称为已(受)检查异常(checked)。
a.Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。
b.RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
c.非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
3RuntimeException常见子类(未检查异常)
ArithmeticException(数学异常)
NullPointerException(空指针异常)
ClassCastException(转型异常)
IllegalArgumentException(向方法传递一个不合法参数)
IndexOutOfBoundsException (数组越界异常)
NumberFormatException(数字转换异常)