package handler import ( "acme-mana-server-go/vo" "github.com/gin-gonic/gin" "github.com/go-acme/lego/v4/log" ) func GlobalPanicHandler() gin.HandlerFunc { return func(ctx *gin.Context) { defer func() { if err := recover(); err != nil { //debug.PrintStack() log.Infof("panic: %v", err) ctx.JSON(500, vo.Fail(err.(error).Error())) ctx.Abort() } }() ctx.Next() } } func GlobalErrorHandler() gin.HandlerFunc { return func(c *gin.Context) { c.Next() if len(c.Errors) > 0 { log.Printf("error: %v", c.Errors) c.JSON(500, vo.Fail(c.Errors.String())) c.Abort() } } }