首页 > 解决方案 > 为什么算术异常是未经检查的异常?

问题描述

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

标签: java

解决方案


ArithmeticExceptionextends RunttimeException,因此未选中。

为什么这个设计决定?如果ArithmeticException选中,那么您将必须封装每个 (!) 整数除法try catch或将 a 添加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
}

或者

void myMethod() {
    int j;
    try {
        j = 1 / i;
    } catch (ArithmeticException e) {
        j = ...; // what value should be used?
    }
    // do something with j
}

至少对我来说,那会很烦人。


推荐阅读