Java 中,所有的异常都有一个共同的祖先
java.lang
包中的
Throwable
类。
Throwable
类有两个重要的子类
Exception
(异常)和
Error
(错误)。
Exception 和 Error 二者都是 Java 异常处理的重要子类,各自都包含大量子类。
- Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。Exception 又可以分为运行时异常(RuntimeException, 又叫非受检查异常)和非运行时异常(又叫受检查异常) 。
- Error :Error 属于程序无法处理的错误 ,我们没办法通过 catch 来进行捕获 。例如,系统崩溃,内存不足,堆栈溢出等,编译器不会对这类错误进行检测,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复。