当我运行以下代码时,我得到异常,这是正常的,因为字符串[0]是“1”而不是2
所以断言使这个例外并从代码中断......
但我想做什么:
如果断言字符串[0]不是1,则打印不等于,并忽略异常
其他
如果string [0]是1
然后代码将打印相等
string = "1 2 3"
assert string[0] == '2'
println "continue"
Exception thrown
Assertion failed:
assert string[0] == '2'
| | |
1 2 3 1 false
答案 0 :(得分:2)
如果你想在失败的断言中吃掉异常,那么断言就会偏离。您正在寻找的内容可以通过问题标题中提到的if / else块轻松实现。
只是为了冗长,您可以通过以下任一方式向断言添加消息,但在失败时仍会出现异常:
assert string[0] == '2' : 'Not Equal'
// or
assert string[0] == '2', 'Not Equal'
应该给出一条消息
java.lang.AssertionError: Not Equal. Expression: (string[0] == 2).
Values: string = 1 2 3