|
|
@@ -66,7 +66,7 @@ const (
|
|
|
// - txFunc: 事务函数
|
|
|
// 返回值:
|
|
|
// - 错误
|
|
|
-func Transaction(executor Executor, txFunc func(tx Executor) error) error {
|
|
|
+func Transaction(executor Executor, txFunc func(tx Executor) error) (err error) {
|
|
|
if executor == nil {
|
|
|
return nil
|
|
|
}
|
|
|
@@ -82,10 +82,11 @@ func Transaction(executor Executor, txFunc func(tx Executor) error) error {
|
|
|
defer func() {
|
|
|
if r := recover(); r != nil {
|
|
|
tx.RollbackTransaction()
|
|
|
+ err = errors.Errorf("panic: %v", r)
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
- err := txFunc(tx)
|
|
|
+ err = txFunc(tx)
|
|
|
if err != nil {
|
|
|
tx.RollbackTransaction()
|
|
|
return err
|