这只是我的好奇心,知道为什么java编译器在这种情况下没有显示任何警告,同时它显示警告未经检查的操作以预测可能的ClassCastException。
public class DivideByZero {
public static void main() {
int number = 3/0;
System.out.println(number);
}
}
以上代码保证会产生ArithmeticException。
这只是一个例子。 有许多方法可以在编译期间保证运行时异常而不会发出任何警告。
答案 0 :(得分:3)
因为从技术上讲,除以零是一个有效的程序。编译器只确定程序的有效性,而不是是否存在运行时问题。从技术角度看,编译器不允许编译除以0的程序,因为它是有效的。