为什么某些例外不需要抛出声明?

时间:2015-03-08 19:28:37

标签: java exception

我有一个带有自定义异常类的Java项目:

public class CustomException extends Exception {

    public CustomException() {
        // ...
    }

}

当我抛出此异常时,我需要指定一个throws declaration,如下所示:

public class ExceptionTest {

    public static void main() throws CustomException {
        throw new CustomException();
    }

}

否则,编译器会告诉我我有一个“未处理的异常”。

然而,当我抛出一个ArrayIndexOutOfBoundsException(例如)而不是我的CustomException时,当我没有指定一个抛出声明时,它不会给我任何这样的错误:

public class ExceptionTest {

    public static void main(String[] args) {
        throw new ArrayIndexOutOfBoundsException();
    }

}

为什么在CustomException的情况下我需要指定一个抛出声明,而在ArrayIndexOutOfBoundsException的情况下,我不需要?

0 个答案:

没有答案