java的assert语句可以让你指定一个消息吗?

似乎喜欢它可能是有用的断言显示一个消息时断言失败。

目前AssertionError被抛出,你能指定一个自定义的消息吗?

你能不能展示一个这样做的例子机制(除了创build你自己的exceptiontypes和抛出它)?

你当然可以:

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

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

 assert (condition) : "some message"; 

我build议把条件放在括号内

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

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

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

不要忘记,这与断言你会写在JUnit中没有任何关系。

这绝对是:

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

这会将“重要的variables为空”添加到抛出的exception中。

如果你使用

 assert Expression1 : Expression2 ; 

Expression2被用作AssertionError的详细消息。