## 1. 常见异常分为那两种(Exception,Error),常见异常的基类以及常见的异常 - Throwable 是 Java 语言中所有错误和异常的超类(万物即可抛)。它有两个子类:Error、Exception。 - 异常种类 - **Error**:Error 为错误,是程序无法处理的,如 OutOfMemoryError、ThreadDeath 等,出现这种情况你唯一能做的就是听之任之,交由 JVM 来处理,不过 JVM 在大多数情况下会选择终止线程。 - **Exception**:Exception 是程序可以处理的异常。它又分为两种 CheckedException(受捡异常),一种是 UncheckedException(不受检异常)。 - **受检异常**(CheckException):发生在编译阶段,必须要使用 try…catch(或者throws)否则编译不通过。 - **非受检异常** (UncheckedException):是程序运行时错误,例如除 0 会引发 Arithmetic Exception,此时程序奔溃并且无法恢复。 (发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的,难以排查,我们一般都需要纵观全局才能够发现这类的异常错误,所以在程序设计中我们需要认真考虑,好好写代码,尽量处理异常,即使产生了异常,也能尽量保证程序朝着有利方向发展。 ) - 常见异常的基类(Exception) - IOException - RuntimeException - 常见的异常 :-: ![](https://box.kancloud.cn/118d84b4bc7e732e5592961c122c25da_4642x2575.png)