java RuntimeExceptions和Errors

A D*_*iss 4 java runtimeexception

根据"Sams教你自己Java 21天"一书

"未经检查的异常,也称为运行时异常..."

在这个事实下,错误也是运行时异常,因为它们是未经检查的异常(或者它不是它所说的?)

这让我对以下陈述感到困惑.

运行时异常是Java运行时环境中的内部错误.

如果它讨论java RuntimeExceptions然后,它是假的,因为它们是异常,被描述为"异常描述由程序和外部环境引起的错误.这些错误可以由程序捕获和处理."

但另一方面,如果它引用java错误,则它们是内部错误.

那个陈述是完全正确还是错误?

Vin*_*eet 6

这种解释的最佳位置是官方文档. Throwable是超级的,有ErrorException. RuntimeException是一个子类Exception.

  • Error &它的子类是未选中的.
  • Exception &它的子类被检查;
    • 除了RuntimeException分支.

ErrorRuntimeException类之间的区别是

  • Error不在你的掌控之中.它们通常是一些系统/环境问题; 例如OutOfMemoryError.
  • RuntimeException另一方面,代表了程序逻辑中的一个缺陷,即它在你的控制之下.你可以纠正它.例如NullPointerException