java断言没有抛出异常

时间:2014-07-11 07:02:56

标签: java

我正在使用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);
    }
}

3 个答案:

答案 0 :(得分:4)

默认情况下,在java中禁用断言。在调用java编译器时,需要通过向命令行参数添加-ea来手动启用它们。如果不知道你正在使用什么编译器/环境,我无法告诉你如何做到这一点。

编辑:

在eclipse中,转到run菜单,然后点击run configurations。选择arguments选项卡,然后在VM参数中键入-ea

答案 1 :(得分:1)

是否启用了断言(运行程序时是-ea标志)?

默认情况下,虚拟机不启用它们。

答案 2 :(得分:1)

本文将向您展示如何在eclipse中执行此操作。可能对你有所帮助

  • 转到运行 - >运行配置
  • 在左侧导航栏中选择java应用程序。
  • 右键单击并选择New。
  • 选择参数选项卡
  • 在VM参数中添加-ea。

How to enable the Java keyword assert in Eclipse program-wise?