3 回答

TA贡献1806条经验 获得超5个赞
通常,RuntimeExceptions是可以通过编程方式阻止的异常。例如 NullPointerException
,ArrayIndexOutOfBoundException
。如果null
在调用任何方法之前检查,则NullPointerException
永远不会发生。同样ArrayIndexOutOfBoundException
,如果您首先检查该指数将永远不会发生。RuntimeException
没有被编译器检查,所以它是干净的代码。
编辑:这些天人们喜欢RuntimeException
它,因为它产生了干净的代码。这完全是个人选择。

TA贡献1803条经验 获得超3个赞
在Java中,有两种类型的异常:已检查异常和未经检查的异常。必须由代码显式处理已检查的异常,而不需要显式处理未经检查的异常。
对于已检查的异常,您必须在可能抛出异常的代码周围放置一个try / catch块,或者向该方法添加一个“throws”子句,以指示该方法可能抛出此类异常(必须是在通话类或以上处理)。
从“Exception”派生的任何异常都是一个经过检查的异常,而从RuntimeException派生的类是未经检查的。调用代码不需要显式处理RuntimeExceptions。

TA贡献1843条经验 获得超7个赞
在查看java.lang.RuntimeException和java.lang.Exception类之间的区别之前,您必须知道Exception层次结构。两个类Exception和Error类都派生自类Throwable(派生自类Object)。这个班RuntimeException是从班级派生出来的Exception。
所有例外都来自Exception或RuntimeException。
源自的所有异常RuntimeException都称为未经检查的异常。所有其他例外都是经过检查的例外。必须在代码中的某处捕获已检查的异常,否则将无法编译。这就是为什么它们被称为检查异常。另一方面,对于未经检查的异常,调用方法没有义务处理或声明它。
因此,编译器强制您处理的所有异常都是直接派生自的java.lang.Exception,而编译器不强制您处理的所有其他异常派生自java.lang.RuntimeException。
以下是RuntimeException的一些直接已知子类。
AnnotationTypeMismatchException,
ArithmeticException,
ArrayStoreException,
BufferOverflowException,
BufferUnderflowException,
CannotRedoException,
CannotUndoException,
ClassCastException,
CMMException,
ConcurrentModificationException,
DataBindingException,
DOMException,
EmptyStackException,
EnumConstantNotPresentException,
EventException,
IllegalArgumentException,
IllegalMonitorStateException,
IllegalPathStateException,
IllegalStateException,
ImagingOpException,
IncompleteAnnotationException,
IndexOutOfBoundsException,
JMRuntimeException,
LSException,
MalformedParameterizedTypeException,
MirroredTypeException,
MirroredTypesException,
MissingResourceException,
NegativeArraySizeException,
NoSuchElementException,
NoSuchMechanismException,
NullPointerException,
ProfileDataException,
ProviderException,
RasterFormatException,
RejectedExecutionException,
SecurityException,
SystemException,
TypeConstraintException,
TypeNotPresentException,
UndeclaredThrowableException,
UnknownAnnotationValueException,
UnknownElementException,
UnknownTypeException,
UnmodifiableSetException,
UnsupportedOperationException,
WebServiceException
添加回答
举报