// 定义try异常工具类
func Try(userFn func(), catchFn func(err interface{})) {
defer func() {
if err := recover(); err != nil {
catchFn(err)
}
}()
userFn()
}
使用,configs.Db是你的数据库连接
// 开始事务
tx := configs.Db.Begin()
Try(func() {
cost.Restore(it)
// 提交事务
tx.Commit()
}, func(err interface{}) {
//回滚事务
tx.Rollback()
fmt.Printf("发生错误: %v\n", err)
})