如何激活assert而无异常(就像bash中的其他一样)

时间:2014-05-05 14:59:07

标签: groovy groovyshell

当我运行以下代码时,我得到异常,这是正常的,因为字符串[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

1 个答案:

答案 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