3

这只是我的好奇心,想知道为什么 java 编译器在这种情况下不显示任何警告,而它显示未检查操作的警告以预测可能的 ClassCastException。

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 回答