-2

当我运行以下代码时,我得到了异常,这没关系,因为字符串 [0] 是“1”而不是 2

所以断言产生这个异常并从代码中中断......。

但我想做的是:

是在 assert string[0] 不是 1 的情况下打印NOT equal ,并忽略异常

别的

如果字符串 [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
4

1 回答 1

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
于 2014-05-05T17:47:29.597 回答