一、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 | 内存溢出异常 |
觉得还行给点个赞吧~
梦在远方,路在脚下,加油!
2019.11.5