Groovy 如何毫无例外地激活assert(就像bash中的else一样)

Groovy 如何毫无例外地激活assert(就像bash中的else一样),groovy,groovyshell,Groovy,Groovyshell,当我运行下面的代码时,我得到异常,这是正常的,因为字符串[0]是“1”,而不是2 因此,请创建此异常并与代码断开 但我想做的是: 如果断言字符串[0]不是1,则打印不等于,并忽略异常 否则 如果字符串[0]是1 然后代码将打印为相等 string = "1 2 3" assert string[0] == '2' println "continue" 如果您希望在失败的断言上执行异常,那么使用as断言的点就偏离了。通过问题标题中提到的if/else块,您可以

当我运行下面的代码时,我得到异常,这是正常的,因为字符串[0]是“1”,而不是2

因此,请创建此异常并与代码断开

但我想做的是:

如果断言字符串[0]不是1,则打印不等于,并忽略异常

否则

如果字符串[0]是1

然后代码将打印为相等

  string = "1 2 3"

  assert string[0]          == '2'

  println "continue"


如果您希望在失败的断言上执行异常,那么使用as断言的点就偏离了。通过问题标题中提到的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

thanx tim_yates for the update-:)如果您可以使用if/else语句做同样的事情,那么为什么您需要从
assert
获得它?因为assert更智能,所以它不是“更智能”。我觉得你不应该用assert来做这个。听起来好像您正试图禁用assert的唯一用途。例如,在VB脚本中,我们有“resume next”,groovy中是否可以:)如何将assert输出发送到日志?
java.lang.AssertionError: Not Equal. Expression: (string[0] == 2). 
Values: string = 1 2 3