package http_handler import ( "acme-mana/src/server/model" "github.com/gin-gonic/gin" "net/http" ) // GlobalErrorHandler 是一个全局错误处理器中间件 func GlobalErrorHandler() gin.HandlerFunc { return func(c *gin.Context) { // 继续执行后续中间件和处理函数 c.Next() // 获取上下文中的错误 if err, ok := c.Get("error"); ok { switch typedErr := err.(type) { case *model.AppError: c.JSON(200, &model.Result{ Code: typedErr.Code, Message: typedErr.Message, Data: nil, }) default: c.JSON(http.StatusInternalServerError, gin.H{ "error": "Internal Server Error", "success": false, }) } c.Abort() return } } }