{{assert}}宏有两种参数,文档中记录为{{(assert x)}}和{{(assert x message)}}。
该文档字符串是
{quote}
评估expr,如果它不是逻辑真值,就抛出异常。
{quote}
这相当具有误导性,因为{{assert}}实际上抛出的是{{Error}}。人们可能会假设,如任何其他异常一样,失败会导致日志中的堆栈跟踪,但实际上JVM会终止。
行为是正确的,当断言的条件为真时,{{assert}}应该使程序退出,但我经常遇到错误的使用。
如果人们同意这是一个问题,我将提出一个补丁。