摘要:本文重点介绍Throwable类、Exception类和Error类的关系、运行时异常和非运行时异常、可检查异常
Java的Throwable类:
Java中所有异常和错误的父类,只有作为此类(或其一个子类)的实例,才能由Java虚拟机抛出,或者可以由Java throw语句抛出。
Throwable有两个子类Error和Exception。
1、Error :
是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。
2、Exception :
是程序本身可以处理的异常,分为运行时异常(RuntimeException)和非运行时异常。
- 1)非运行时异常:这种异常的特点是java编译器会检查它,也就是说,当程序中可能出现这类 异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不通过。
- 2)运行时异常(RuntimeException):编译期间系统检查不出,只会出现在程序运行时。
常见的RutimeException:
NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常
UnsupportedOperationException - 不支持的操作异常
注:程序可检查的异常只有非运行时异常,Error和运行时异常都没办法进行检查。
下面是这几种异常和错误的关系图: