已声明但未抛出异常类

时间:2018-09-02 10:40:46

标签: java exception exception-handling unreachable-code defensive-programming

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

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

        }
    }
}

1 个答案:

答案 0 :(得分:1)

Exception具有RuntimeException作为子类。 RuntimeException及其子类不需要在方法签名中声明。

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

进一步阅读here