2019-09-04 17:45
Db.tx()调用的是DbPro.tx(Config config, int transactionLevel, IAtom atom)方法,里面是这样子写的:
boolean result = atom.run();
if (result)
return true;
throw new NestedTransactionHelpException("Notice the outer transaction that the nested transaction return false"); // important:can not return false
而NestedTransactionHelpException是一个RuntimeException,所以可以不用在tx方法用throws声明。这也是你后面的代码没有执行的原因。
处理方案:直接当成一般的编译异常处理,套一个try catch。
try{
DB.tx()
} catch(NestedTransactionHelpException e){
//这里写你的回滚事务的操作
}
希望能帮到楼主。