java断言关键字的问题

时间:2011-05-19 04:59:14

标签: java assert

public void foo() 
{
    assert false; /* Line 5 */
    assert true; /* Line 6 */

} 

断言在这做什么?我熟悉断言声明

3 个答案:

答案 0 :(得分:10)

使用此关键字,我们断言此时某个条件为真。如果在运行时确实如此,则应用程序继续,否则将抛出AssertionError

您的代码应该在第5行抛出该错误。

请注意,默认情况下会禁用断言 - 您必须使用-ea选项启动应用程序(“启用断言”)。

进一步阅读:Programming with Assertions

答案 1 :(得分:4)

是的,当给定表达式求值为AssertionError时,它是一个抛出false的关键字。它通常用于在运行时检测“不可能”的代码分支。

它有时也用于检查功能的输出。愚蠢的例子:

double square(double x) {
    double result = x * x;
    assert result >= 0;
    return result;
}

您还可以指定错误消息,如下所示:

assert false : "Uh oh";

我认为运行时断言仅在使用java选项启动-ea程序时进行评估。

答案 2 :(得分:0)

主要用作Java Assertion用于应用程序的单元测试。它检查assert关键字之后的条件,如果condition返回true,那么它将继续,否则会导致异常。

正如here所述:

  

“断言”陈述是其中的一部分   Java断言功能介绍于   Java 1.4。 Java断言功能   允许开发人员放置“断言”   Java源代码中的语句有所帮助   单元测试和调试。