web-dev-qa-db-ja.com

Javaのassertステートメントでメッセージを指定できますか?

アサーションが失敗したときにアサートにメッセージを表示させると便利な場合があります。

現在AssertionErrorがスローされますが、カスタムメッセージを指定できますか?

これを行うためのメカニズムの例を示してください(独自の例外タイプを作成してスローする以外)。

59
Allain Lalonde

あなたは確かにできる:

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

詳細については、 アサーションを使用したプログラミング を参照してください。

131
Greg Hewgill
assert (condition) : "some message";

条件を括弧で囲むことをお勧めします

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

このようなコードに出会ったと想像してみてください...

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

これは、JUnitで記述するアサートとは何の関係もないことを忘れないでください。

17
matt burns

それは絶対に行います:

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

これにより、スローされる例外に「重要な変数はnullでした」が追加されます。

11
Jason Coco

使用する場合

assert Expression1 : Expression2 ;

Expression2は、AssertionErrorの詳細メッセージとして使用されます。

6
Bill the Lizard