根据《Java 21天自学教程》一书的说法,未经检查的异常也被称为运行时异常。因此,错误也是运行时异常,因为它们是未经检查的异常(或者它所说的不是这个意思吗?)。这让我对下面的陈述感到困惑。如果它谈论的是Java RuntimeExceptions,那么它是错误的,因为它们被描述为“异常描述由您的程序和外部情况引起的错误。这些错误可以被您的程序捕获和处理。”但另一方面,如果它指的是Java Errors,则它们是内部错误。那么这个陈述是完全正确还是错误的?
Throwable
是超类,其中包括Error
和Exception
。 RuntimeException
是Exception
下的子类。
Error
及其子类是未经检查的。Exception
及其子类是经过检查的;
RuntimeException
分支。Error
和RuntimeException
类之间的区别在于
Error
不受您的控制。它们通常是一些系统/环境问题;例如:OutOfMemoryError
。RuntimeException
代表程序逻辑上的缺陷,即它在您的控制范围内。您可以更正它。例如:NullPointerException
Error
和RuntimeException
都是未检查异常。 - Vineet