一、Throwable
Throwable类(可抛出)是一个超类,是所有错误和异常根。只有继承于Throwable的类或者其子类才能够被抛出。
有两个子类为Error和Exception,其他的异常类都继承于这两个子类。
三、Error和Exception
Error类及其子类错误:一般指应用程序存在严重问题,无法通过try-catch来进行捕获。例如,系统崩溃,内存不足,堆栈溢出等,应用程序一般无法自行恢复。
Exception类及其子类异常:可以通过catch来进行捕获,对其进行处理。
当我们自定义运行时异常时,只需要继承RuntimeException即可
二、运行时、非运行时
业务中经常按功能可划分为两类
1.运行时 (非编译检查), 程序运行时,将错误或异常抛出, 编译可以成功
RuntimeException类及其子类
Error类及其子类
2.非运行时(编译检查), 程序编译时,将错误或异常抛出, 编译会失败
除RuntimeException类及其子类外,其他的类
三、Throwable类中的方法
getMessage() 异常的详细描述性消息
printStackTrace() printStackTrace(PrintStream s) printStackTrace(PrintStreamOrWriter s) 打印堆栈信息
fillInStackTrace() 填充执行堆栈跟踪
setStackTrace(StackTraceElement[] stackTrace) 设置堆栈跟踪元素
getStackTrace() 获取堆栈跟踪元素
initCause(Throwable cause) 初始化异常类
getCause() 获取异常类
addSuppressed(Throwable exception) 追加异常
getSuppressed() 返回追加异常
三、部分详细异常说明
异常 | 说明 |
---|---|
Throwable | 超类 |
Exception | 异常 |
Error | 错误 |
RuntimeException | 运行时异常 |
InterruptedException | |
CloneNotSupportedException | |
VirtualMachineError | |
LinkageError | |
AssertionError | |
NullPointerException | 空指针异常 |
IllegalArgumentException | 非法参数异常 |
SecurityException | |
ArithmeticException | |
IndexOutOfBoundsException | |
ArrayIndexOutOfBoundsException | 数组越界异常 |
ArrayStoreException | |
ClassCastException | 类型转换异常 |
EnumConstantNotPresentException | |
IllegalMonitorStateException | |
IllegalStateException | 非法状态异常 |
UnsupportedOperationException | |
OutOfMemoryError | 内存不足 |
StackOverflowError | 堆栈溢出 |
UnknownError |