使用 Objectify 4,我试图在事务中引发受控异常。由于 vrun() 接口不允许抛出异常,我必须抓住它。我这样做了,然后我想执行回滚,但是当事务完成并且一切都失败时(我认为这是因为它试图进行提交),甚至不执行回滚。我该怎么做?
提前致谢!
代码示例:
ofy().transact(new VoidWork() {
@Override
public void vrun() {
//do something
//...
//find someting wrong and want to throw an exception
try {
throw new MyException(); //throw the exception
} catch (MyException e) {
ofy().getTransaction().rollback(); //catch it and perform rollback
}
}
});
//an error occurs