文章目录
概念
Java中的所有异常都来自顶级父类Throwable。
Throwable下有两个子类Exception和Error。
- Error是程序无法处理的错误,一旦出现这个错误,则程序将被迫停止运行。
- Exception不会导致程序停止,又分为两个部分RunTimeException()运行时异常和非RunTimeException检查异常。
RuntimeException对应一个具体的java类;非RuntimeException并不是一个具体的java类,如果一个异常类不是RuntimeException的子类,则称之为非RuntimeException
-
非RuntimeException:受检查的异常,这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:
IOException
。 又称之为CheckedException
检查异常 -
RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的
NullPointerException
,我们在写程序时不会进行catch或throw。 又称之为UnCheckedException
非检查异常
RuntimeException也是继承自Exception的,只是虚拟机对这两种异常进行了区分。小伙伴在编写自己的异常时,要选好继承哪个异常哦~~