一、Throwable类
Throwable类是Error类和Exception类的超类。
1. Throwable类中的属性
- serialVersionUID:序列号ID
- detailMessage:关于这个对象的特定信息
- cause:导致该Throwable产生的Throwable对象
- stackTrace:保存了堆栈信息
2. Throwable类中的方法
- Throwable():可接受detailMessage、cause、enableSuppression、writableStackTrace参数
- initCause(Throwable t):初始化cause,这个方法只能被调用最多一次
- printStackTrace():打印堆栈轨迹到标准错误流
- addSuppressed():将被屏蔽异常加入集合当中,在打印堆栈轨迹时也将其打印
二、Error类
Error类及其子类表示严重的错误,合理的应用程序不应当去捕获。
三、Exception类
Exception类及其子类表示合理的应用程序可能想捕获被抛出对象的的情况。Exception类的子类RuntimeException类及其子类的类是运行时异常,Exception类及其子类中非运行时异常是编译时检查异常。
1. 运行时异常
RuntimeException类及其子类是能在JVM正常操作时抛出的异常,是非检查异常,不需要在方法或构造器中用throws显示抛出。
2. 检查异常
检查异常需要在方法或构造器中用throws语句显示声明,或将其捕获,否则不能通过编译。
四、常见异常
- Error:StackOverflowException、OutOfMemoryError、NoClassDefFoundError
- RuntimeException:IndexOutOfBoundsException、NullPointerException
- 检查异常:IOException、SQLException