这只是我好奇为什么java编译器在这种情况下不显示任何警告,而它显示未经检查的操作的警告来预测可能的ClassCastException。
public class DivideByZero {
public static void main() {
int number = 3/0;
System.out.println(number);
}
}
上面的代码保证会产生 ArithmeticException。
这只是一个例子。 有更多方法可以保证编译过程中出现运行时异常而不发出任何警告。
因为从技术上讲,除以零是一个有效的程序。编译器只判断程序的有效性,而不判断是否会出现运行时问题。从技术上来说,编译器不允许您编译除以零的程序,因为它是有效的,这在技术上是不正确的。