From 71cb1373fd42cb0a0b1ef3122741fbbca4b867c0 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 12 May 2021 13:49:46 -0500 Subject: [PATCH] adding changes in #335 by @kaylay to handle transaction panic --- connection.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/connection.go b/connection.go index 91d299bd..8b300ee1 100644 --- a/connection.go +++ b/connection.go @@ -150,6 +150,14 @@ func (c *Connection) Transaction(fn func(tx *Connection) error) error { if err != nil { return err } + + defer func() { + if err := recover(); err != nil { + cn.TX.Rollback() + err = errors.Errorf("panic err %v", err) + } + }() + err = fn(cn) if err != nil { dberr = cn.TX.Rollback()