Java-受检异常与非受检异常
Java-受检异常与非受检异常
受检异常
受检异常其实表示的是在编译的时候,要强制检查的异常,这种异常需要去显示的通过try/catch来进行捕获或者通过throws去抛出去否则程序无法通过编译的。
非受检异常
非受检异常就是表示在编译的时候可以不需要去强制检查的异常,这种异常可以不需要显示去捕获或者抛出。
java中的异常
java中的异常和错误都继承自java.lang.Throwable,Throwable这个超类有两个直接子类,分别是Error
和Exception
。
Error用来表示程序底层或者硬件有关的错误,这种错误和程序本身无关,比如常见的OOM异常。这种异常和程序本身无关,所以不需要检查,属于非受检异常。
Exception表示程序中的异常,可能是由于程序不严谨导致的。Exception下面又派生出RuntimeException和其他异常,其中RuntimeException是运行时异常,也是属于非受检异常
。
除了RuntimeException以及他的派生类,其他的异常就都属于受检异常。