Может ли оператор утверждения Java разрешить вам указать сообщение? - PullRequest
57 голосов
/ 07 ноября 2008

Похоже, может быть полезно, чтобы assert отображало сообщение при сбое утверждения.

В настоящее время выдается AssertionError, можете ли вы указать для него специальное сообщение?

Можете ли вы показать пример механизма для этого (кроме создания собственного типа исключения и его выдачи)?

Ответы [ 4 ]

125 голосов
/ 07 ноября 2008

Вы, конечно, можете:

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

См. Программирование с утверждениями для получения дополнительной информации.

16 голосов
/ 29 января 2009
assert (condition) : "some message";

Я бы рекомендовал поставить условное выражение в скобках

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

Представьте, если вы натолкнулись на такой код ...

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

Не забывайте, что это не имеет ничего общего с утверждениями, которые вы пишете в JUnit.

11 голосов
/ 07 ноября 2008

Это абсолютно так:

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

Это добавит «Важная переменная была пуста» к исключению, которое выдается.

6 голосов
/ 07 ноября 2008

Если вы используете

assert Expression1 : Expression2 ;

Expression2 используется в качестве подробного сообщения для ошибки AssertionError.

...