在Groovy中重新引发异常

在Groovy中重新引发异常,groovy,Groovy,我有一个带有try-catch语句的groovy脚本。现在我想重新引发异常,以便调用方也可以对该异常做出反应。有没有一个规范的方法可以做到这一点?一个你所拥有的例子会很好 但你是说: Transaction tx = startTransaction() try { tx.doSomething() tx.commit() } catch(ex) { tx.rollback() throw new MyTransactionFailedException("rol

我有一个带有try-catch语句的groovy脚本。现在我想重新引发异常,以便调用方也可以对该异常做出反应。有没有一个规范的方法可以做到这一点?

一个你所拥有的例子会很好

但你是说:

Transaction tx = startTransaction()
try {
    tx.doSomething()
    tx.commit()
}
catch(ex) {
    tx.rollback()
    throw new MyTransactionFailedException("rolling back", ex)
}

只需抛出您捕获的实例:

Transaction tx = startTransaction()
try {
    tx.doSomething()
    tx.commit()
}
catch(ex) {
    tx.rollback()
    throw exc
}

你有什么样的示例代码吗?我不喜欢在这个特定的案例中重复相同的捕获异常(我知道这是你的案例,而不是OP的)。如果您正在捕获一组不同的异常类型并立即重新引用其中的一些,那么这似乎是合法的。但是,如果您在catch块内进行一些处理(如本例中),我认为将异常包装在新异常中并抛出该异常可以提高代码的可调试性。否则,在堆栈展开期间发生的回滚可能会丢失在堆栈跟踪中。