Reputation: 93338
Seems likes it might be useful to have the assert display a message when an assertion fails.
Currently an AssertionError
gets thrown, can you specify a custom message for it?
Can you show an example mechanism for doing this (other than creating your own exception type and throwing it)?
Upvotes: 92
Views: 54333
Reputation: 993055
You certainly can:
assert x > 0 : "x must be greater than zero, but x = " + x;
See Programming with Assertions for more information.
Upvotes: 184
Reputation: 25370
assert (condition) : "some message";
I'd recommend putting the conditional in brackets
assert (y > x): "y is too small. y = " + y;
Imagine if you came across code like this...
assert isTrue() ? true : false : "some message";
Don't forget this has nothing to do with asserts you'd write in JUnit.
Upvotes: 22
Reputation: 405745
If you use
assert Expression1 : Expression2 ;
Expression2 is used as a detail message for the AssertionError.
Upvotes: 8
Reputation: 78353
It absolutely does:
assert importantVar != null : "The important var was null!";
This will add "The important var was null" to the exception that is thrown.
Upvotes: 12