为什么java编译器没有显示明显除以零的警告?

时间:2013-09-29 18:42:45

标签: java compiler-construction compiler-warnings

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

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

以上代码保证会产生ArithmeticException。

这只是一个例子。 有许多方法可以在编译期间保证运行时异常而不会发出任何警告。

1 个答案:

答案 0 :(得分:3)

因为从技术上讲,除以零是一个有效的程序。编译器只确定程序的有效性,而不是是否存在运行时问题。从技术角度看,编译器不允许编译除以0的程序,因为它是有效的。