在java中断言错误

Posted

技术标签:

【中文标题】在java中断言错误【英文标题】:Assert error in java 【发布时间】:2013-12-25 00:06:21 【问题描述】:

这里可能是新手错误。我直接从书中复制了assert 代码,但没有抛出AssertionError。如果我输入一个低于 0 或高于 10 的值,则继续正常执行。

import java.util.Scanner;

public class AssertExample

    public static void main(String[] args)
    
        Scanner scanner = new Scanner(System.in);

        System.out.print("enter a number between 0 and 10: ");
        int number = scanner.nextInt();

        assert (number >= 0 && number <= 10) : "bad number: " + number;

        System.out.println("You entered " + number);
        scanner.close();
    


enter a number between 0 and 10: -3
You entered -3

【问题讨论】:

可能重复how to enable java keyword assert in Eclipse in program wise? 不要使用assert 来验证用户输入,因为它们不能保证运行:***.com/a/298973/20394 【参考方案1】:

AssertionError 没有被抛出。

在运行应用程序时将-ea(启用断言)添加到 Java 命令参数中。

【讨论】:

【参考方案2】:

您必须在启用断言的情况下运行程序。

java -ea[:<packagename>...|:<classname>]

【讨论】:

以上是关于在java中断言错误的主要内容,如果未能解决你的问题,请参考以下文章

java opencv错误内存不足和断言失败

Java断言绝对不是鸡肋

Java基础-异常断言

[core java学习笔记][第十一章异常断言日志调试]

java学习笔记(Core java)7 断言与异常

java 异常日志断言调试