79

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

目前一个AssertionError被抛出,你可以为它指定一个自定义消息吗?

您能否展示一个示例机制来执行此操作(除了创建自己的异常类型并抛出它)?

4

4 回答 4

164

你当然可以:

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

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

于 2008-11-07T20:12:42.333 回答
20
assert (condition) : "some message";

我建议将条件放在括号中

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

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

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

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

于 2009-01-29T17:02:24.747 回答
12

它绝对可以:

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

这会将“重要的变量为空”添加到抛出的异常中。

于 2008-11-07T20:14:02.957 回答
7

如果你使用

assert Expression1 : Expression2 ;

Expression2 用作 AssertionError 的详细消息。

于 2008-11-07T20:14:32.503 回答