recovery.go 394 B

123456789101112131415161718192021
  1. package middleware
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "go_server/model/common/response"
  6. )
  7. // Recovery 全局错误恢复中间件
  8. func Recovery() gin.HandlerFunc {
  9. return func(c *gin.Context) {
  10. defer func() {
  11. if err := recover(); err != nil {
  12. // 打印错误堆栈信息
  13. response.Resp(c, fmt.Sprintf("recovery error:%v", err))
  14. c.Abort()
  15. }
  16. }()
  17. c.Next()
  18. }
  19. }