Can java's assert statement allow you to specify a message?
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)?
Solution 1:
You certainly can:
assert x > 0 : "x must be greater than zero, but x = " + x;
See Programming with Assertions for more information.
Solution 2:
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.
Solution 3:
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.