一尘不染

java.lang.RuntimeException和java.lang.Exception之间的区别

java

有人请解释之间的差异java.lang.RuntimeExceptionjava.lang.Exception?如果创建自己的异常,我该如何决定扩展哪一个?


阅读 764

收藏
2020-03-11

共2个答案

一尘不染

通常,RuntimeExceptions是可以通过编程方式防止的异常。例如 NullPointerExceptionArrayIndexOutOfBoundException。如果null在调用任何方法之前进行检查,则NullPointerException永远不会发生。ArrayIndexOutOfBoundException如果你先检查索引,同样也不会发生。RuntimeException不会由编译器检查,因此它是干净的代码。

2020-03-11
一尘不染

在Java中,有两种异常类型:已检查的异常和未检查的异常。必须通过代码显式处理已检查的异常,而无需显式处理未检查的异常。

对于已检查的异常,你必须在可能引发异常的代码周围放置try / catch块,或者在方法中添加“ throws”子句,以指示该方法可能会抛出这种类型的异常(必须是在调用类或更高级别中处理)。

从“ Exception”派生的任何异常都是已检查的异常,而从RuntimeException派生的类则未经检查。调用代码不需要显式处理RuntimeExceptions。

2020-03-11