我知道为什么运行时异常不需要尝试 - 捕获或抛出,但我想知道它是如何设计的,不需要它们?

1 java exception

当我从Exception扩展时,需要throw或catch.我在RunTimeException类的代码上找不到任何东西

Joh*_*uhn 6

这是第11.2节中的Java语言规范所强制要求的:

未经检查的异常类(第11.1.1节)免于编译时检查.

§11.1.1规定:

11.1.1.种类的例外

异常由类的实例Throwable(其直接子类Object)或其子类之一表示.

Throwable它的所有子类都是异常类.

这些类ExceptionError是直接的子类Throwable:

  • Exception 是普通程序可能希望恢复的所有异常的超类.

    该类RuntimeException是直接的子类Exception.RuntimeException是表达式评估期间由于多种原因可能抛出的所有异常的超类,但仍可能从中恢复.

    RuntimeException它的所有子类统称为运行时异常类.

  • Error 是普通程序通常不会恢复的所有异常的超类.

    Error它的所有子类统称为错误类.

未经检查的异常类是运行时异常类和错误类.

检查的异常类是除未经检查的异常类之外的所有异常类.也就是说,已检查的异常类是Throwable及其除RuntimeException以外的所有子类及其子类和Error及其子类.