一、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 |













![[MySQL / Mariadb] 数据库学习-Linux中二进制方式安装MySQL5.7](https://img-blog.csdnimg.cn/c0223722813d4283a2ec85cc7a54b9e1.png)




