Java 的断言语句允许你指定一条消息吗?

当断言失败时,让断言显示一条消息似乎是有用的。

当前抛出一个 AssertionError,您能为它指定一个自定义消息吗?

您能否展示一个实现此目的的示例机制(除了创建您自己的异常类型并抛出它之外) ?

45298 次浏览

你当然可以:

assert x > 0 : "x must be greater than zero, but x = " + x;

有关更多信息,请参见 使用断言编程

确实如此:

assert importantVar != null : "The important var was null!";

这将向引发的异常中添加“ The important var was null”。

如果你用

assert Expression1 : Expression2 ;

Expression2用作 AssertionError 的详细信息。

assert (condition) : "some message";

我建议将条件句放在括号中

assert (y > x): "y is too small. y = " + y;

想象一下,如果你遇到这样的代码..。

assert isTrue() ? true : false : "some message";

不要忘记,这与在 JUnit 中编写的断言没有任何关系。