为什么算术异常是未经检查的异常?

时间:2018-06-21 07:43:11

标签: java

有人可以解释为什么算术异常属于未检查的异常类别吗?我已经搜索了它,但没有正确的答案。如果有人回答,将不胜感激。

4 个答案:

答案 0 :(得分:5)

runtime: nodejs env: flex manual_scaling: instances: 1 resources: cpu: 1 memory_gb: 0.5 disk_size_gb: 10 扩展了ArithmeticException,因此未选中。

为什么要设计决定?如果选中了RunttimeException,则必须将每个(!)整数除封装在ArithmeticException中,或向周围的方法中添加try catch

以下程序无法编译:

throws

您将不得不写

class MyClass {
    int i = 10;
    void myMethod() {
        int j = 1 / i;
        // do something with j
    }
}

void myMethod() throws ArithmeticException {
    int j = 1 / i;
    // do something with j
}

至少对我来说,这很烦人。

答案 1 :(得分:4)

为了使开发人员免于处理由于编程错误而导致的各种异常,例如从数组末尾掉落,除以零等等,因此将某些异常提名为未经检查的异常(这些异常源自RuntimeException),无需声明。

答案 2 :(得分:1)

因为它类似于非法的参数异常。

所有IllegalArgumentExceptionIllegalStateExceptionNullPointerException均被视为编程错误,未经检查,可以避免throws子句在整个代码中过度扩散,原则上可能会抛出任何和所有这些异常都未经检查。

之间只有一个语法上的差异:

y=a/b;

y=div(a,b);

答案 3 :(得分:0)

听起来像一个旧线程,但是如果有帮助,这里有一些关于该主题的详细想法,其中包含更多的见解,推理和API参考。 FAQ about checked exception and unchecked exception?

希望这会更深入地回答。