{{assert}} 宏有两种形式,分别是 {{(assert x)}} 和 {{(assert x message)}}。
文档字符串是
{quote}
评估 expr,如果它不评估为逻辑真,则抛出异常。
{quote}
这相当误导,因为 {{assert}} 实际上抛出了一个 {{Error}}。人们可能会认为如果失败,将像任何其他 {{Exception}} 一样在日志中留下 stacktrace,但实际情况是 JVM 将终止。
这种行为是正确的,{{assert}} 应该在断言的条件为真时使程序退出,但我经常遇到使用不当的情况。
如果大家认为这是一个问题,我将准备一个补丁。