我正在使用assert检查数字是否在1-10之间,但是如果我输入的数字超过10,它仍然会给我结果而不是抛出异常。我做错了什么?
import java.util.Scanner;
public class xina {
public static void main(String[] args) throws Exception {
System.out.println("enter any number");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
assert ( num >= 0 && num <= 10 ) : "bad number: " + num;
System.out.println("You entered " + num);
}
}
答案 0 :(得分:4)
默认情况下,在java中禁用断言。在调用java编译器时,需要通过向命令行参数添加-ea
来手动启用它们。如果不知道你正在使用什么编译器/环境,我无法告诉你如何做到这一点。
编辑:
在eclipse中,转到run
菜单,然后点击run configurations
。选择arguments
选项卡,然后在VM参数中键入-ea
。
答案 1 :(得分:1)
是否启用了断言(运行程序时是-ea标志)?
默认情况下,虚拟机不启用它们。
答案 2 :(得分:1)
本文将向您展示如何在eclipse中执行此操作。可能对你有所帮助
How to enable the Java keyword assert in Eclipse program-wise?