3

これは、可能性のある ClassCastException を予測するためのチェックされていない操作に対する警告が表示されているのに、この場合に Java コンパイラが警告を表示しない理由を知りたいという私の好奇心です。

public class DivideByZero {
    public static void main() {
        int number = 3/0;
        System.out.println(number);
    }
}

上記のコードは、ArithmeticException を生成することが保証されています。

これは単なる例です。コンパイル中に警告なしで実行時例外を保証する方法は他にもあります。

4

1 に答える 1

3

技術的には、ゼロ除算は有効なプログラムだからです。コンパイラは、ランタイムの問題があるかどうかではなく、プログラムの有効性を判断するだけです。有効であるため、コンパイラがゼロ除算を使用してプログラムをコンパイルできないようにすることは、技術的に正しくありません。

于 2013-09-29T18:44:20.513 に答える