From e7b8e02696a1f1bcd365baa7f67fa360a201bf5b Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 16 Nov 2023 11:51:58 +0000 Subject: [PATCH] database: print both errors in WithTx Make it easier to debug panics by printing both errors instead of sending one of them to /dev/null. --- database/middleware.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/database/middleware.go b/database/middleware.go index 451d4697dcbfbff6bb12f4c21f9be9e4357d8738..c5980ab1ba27ede787540f5ea8c7f33f3877eb97 100644 --- a/database/middleware.go +++ b/database/middleware.go @@ -5,6 +5,7 @@ import ( "database/sql" sqldriver "database/sql/driver" "errors" + "fmt" "net/http" ) @@ -69,7 +70,11 @@ func WithTx(ctx context.Context, opts *sql.TxOptions, fn func(tx *sql.Tx) error) return err } if txErr != nil && txErr != sql.ErrTxDone { - panic(txErr) + if err != nil { + panic(fmt.Errorf("Transaction error: %v\nClosure error: %v", txErr, err)) + } else { + panic(txErr) + } } return err }