为什么java编译器不显示明显除以零的警告? [重复]

问题描述 投票:0回答:1

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

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

上面的代码保证会产生 ArithmeticException。

这只是一个例子。 有更多方法可以保证编译过程中出现运行时异常而不发出任何警告。

java compiler-warnings
1个回答
3
投票

因为从技术上讲,除以零是一个有效的程序。编译器只判断程序的有效性,而不判断是否会出现运行时问题。从技术上来说,编译器不允许您编译除以零的程序,因为它是有效的,这在技术上是不正确的。

© www.soinside.com 2019 - 2024. All rights reserved.