一、Exception和Error的异同
- Error和Exception都继承了Throwable类,而只有继承了Throwable类的才能抛出或者捕获异常。
- Exception是java程序运行中可以预料的意外情况,可以并且应该被捕获。
- Error指正常情况不可能出现的错误,一旦出现,程序将进入不正常,不可恢复状态,且无法被捕获。常见的如:栈移除,内存溢出,线程死亡等。
二、Execption分类
可检查异常:可检查异常必须在代码中显式的捕获,这是编译期工作的一部分,不然无法通过编译。
不可检查异常:不可检查即意味着编译期检测不出来的异常,此类异常是运行时异常(RuntimeExecpiton,除此异常外都是可检查异常)。
三、Throwable常见子类类图
四、常见异常类
RuntimeExecption-不可检查异常
类名 | 介绍 |
---|---|
ClassCastExecption | 类型转换异常 |
StringIndexOutofBoundsExecption | 字符串索引越界 |
ArrayIndexOutofBoundsExecption | 数组索引越界 |
NullPointerExecption | 空指针异常 |
NumberFormatExecption | 转换数字异常 |
可检查异常
类名 | 介绍 |
---|---|
NoSuchFieldExecption | 找不到字段 |
NoSuchMethodExecption | 找不到方法 |
ClassNoFoundExecption | 找不到类 |
IOExecption | IO异常 |
IOExecption-EOFExecption | 文件已结束 |
IOExecption- FieldNotFoundExecption | 文件未找到 |
SQLExecption | SQL异常 |
五、Error类
类名 | 介绍 |
---|---|
ThreadDeath | 线程死亡 |
VirtualMachineError | 虚拟机异常 |
VirtualMachineError-StackOverFlowError | 栈溢出异常 |
VirtualMachineError-OutofMemoryError | 内存溢出异常 |