Java 已检查和未检查的异常

Java checked and unchecked exceptions

  1. 如果我创建一个扩展 Exception 的异常 class,我的 class 会被选中还是不被选中?我注意到 Exception 的子 class 称为 RuntimeException 是未检查的异常,而 'Exception' 的所有其他子 class 是检查的异常。

  2. 如果我创建一个扩展 RuntimeException 的异常 class,我可以指定检查此 class 吗?

1) 已检查

2) 否

如果扩展异常 -> 检查

如果扩展 RuntimeException -> 未检查

来自文档:

The class {@code Exception} and any subclasses that are not also * subclasses of {@link RuntimeException} are checked * exceptions

如果您创建扩展异常的 class,它将被检查。您不能将 RuntimeException 指定为已检查,因为它是未经检查的异常

检查异常,除非它们继承自 RuntimeException 或 Error

如果您的class extends Exception 它可以抛出已检查的异常。

如果您的 class 扩展了 Error 或 RuntimeException,它可能会抛出未经检查的异常。