java的断言语句是否允许您指定消息?

时间:2008-11-07 20:11:34

标签: java assert

似乎在断言失败时断言显示消息可能很有用。

目前有AssertionError被抛出,您可以为它指定自定义消息吗?

你能否展示一个这样做的机制(除了创建自己的异常类型并抛出它)?

4 个答案:

答案 0 :(得分:125)

你当然可以:

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

有关详细信息,请参阅Programming with Assertions

答案 1 :(得分:16)

assert (condition) : "some message";

我建议将条件括在括号中

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

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

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

不要忘记这与您在JUnit中编写的断言无关。

答案 2 :(得分:11)

绝对可以:

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

这会将“重要的var为null”添加到抛出的异常中。

答案 3 :(得分:6)

如果您使用

assert Expression1 : Expression2 ;

Expression2用作AssertionError的详细消息。