在java的lang包有 Throwable类,它是所有异常的父类或者间接父类。每个异常类型都是Throwable的子类。它有两个直接子类:Error和Exception。
Error类定义了那些通常情况下不希望被捕获的异常。它主要用于java运行时系统显示与运行时本身的错误有关或者编译期错误,如内存溢出。
Exception类是程序能够捕获的异常情况。它有子类RuntimeException,这个类是对程序运行时某些错误反应而产生的。一般这种异常不做任何处理。它和Error一起叫作未检查异常。如下:
异常名称 | 异常说明 |
---|---|
ArithmeticException | 算术异常 |
ArrayStoreException | 数组元素与数组类型不同 |
ClassCastException | 强制类型转换异常 |
IllegalArgumentException | 调用非法参数异常 |
IllegalPathStateException | 非法路径异常 |
IllegalStateException | 非法状态或环境异常 |
IndexOutOfBoundsException | 索引越界 |
NullPointerException | 非法使用空引用 |
SecurityException | 系统安全异常 |
UndeclaredThrowableException | 未定义抛出异常 |
UnsupportedOperationException | 操作异常 |
Exception中除了RuntimeException以为的异常都是检查异常,它们本身不是错误,但是在特定情况下会被看出错误。如下:
异常名称 | 异常说明 |
---|---|
ClassNotFoundException | 找不到相关类异常 |
CloneNotSupportedException | 对象不能实现异常 |
DataFormatException | 数据格式化异常 |
InstantiationException | 创建抽象对象异常 |
NoSuchFiledException | 请求内容不存在 |
NoSuchMethodException | 请求方法不存在 |