异常 Class 已声明但未抛出

Exception Class declared but not thrown

这里的测试没有抛出异常对象,但我已经处理了它。由于 Exception 是一个已检查的异常,它不应该在 catch 块中抛出无法访问代码的编译器错误

class Ece extends Exception {}
public class Excep {
    public static void test()  { }
    public static void main(String[] args) {
        try {
            test();
        } catch (Exception E) {

        }
    }
}

class ExceptionRuntimeException 作为子class。 RuntimeException 及其子class 不需要在方法签名中声明。

在这种情况下,您正在捕获 Exception 的所有可能子class,包括所有不需要签名声明的子class。例如,如果您的 test 方法抛出 ArrayIndexOutOfBoundsException,您将能够捕获并处理它,但 test 签名不会受到影响。

进一步阅读here