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

2022-08-31 05:24:38

有人请解释一下 和 之间的区别 ?如果我创建自己的例外,如何决定要扩展哪一个?java.lang.RuntimeExceptionjava.lang.Exception


答案 1

通常,运行时异常是可以通过编程方式阻止的异常。例如, .如果在调用任何方法之前检查,则永远不会发生。同样,如果您先检查索引,则永远不会发生。 编译器未检查,因此它是干净的代码。NullPointerExceptionArrayIndexOutOfBoundExceptionnullNullPointerExceptionArrayIndexOutOfBoundExceptionRuntimeException

编辑:这些天人们青睐,因为它产生的干净代码。这完全是个人选择。RuntimeException


答案 2

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

对于已检查的异常,必须在可能引发异常的代码周围放置一个 try/catch 块,或者向该方法添加一个 “throws” 子句,以指示该方法可能会引发此类型的异常(必须在调用类或更高版本中处理)。

从“异常”派生的任何异常都是已检查的异常,而从 RuntimeException 派生的类是未选中的。运行时异常不需要由调用代码显式处理。