您的位置 首页 golang

「golang」Gin处理全局的404,500异常

在的web服务开发中,我们会遇到出现Error的场合,我们需要将这些error的信息返回给客户端。特别是api, 这些错误描述应该以JSON结构体的形式返回,其中要包含业务错误码和具体的原因。我们可以每次手动处理这些错误,但是为了减少重复并统一处理风格,我们需要采取手段进行统一的错误处理。

 package main

 import  (
"fmt"
"github.com/gin-gonic/gin"
"log"
"runtime/debug"
)

func recover400(c *gin.Context) {
   c. JSON (200, gin.H{
      "status":  404,
      "message": "404 Not Found" + c. Request .Method + " " + c.FullPath(),
   })
}

func recover500(c *gin.Context) {
   defer func() {
      if r := recover(); r != nil {
         log.Printf("panic: %v\n", r)
         debug.PrintStack()
         c.JSON(200, gin.H{
            "code":    500,
            "message": "服务器内部错误",
         })
      }
   }()
   c.Next()
}

func main() {
 router  := gin.Default()
router.Use(recover500)
//处理404 请求
router.NoRoute(recover400)
  
router.Run(":9999")
}  

文章来源:智云一二三科技

文章标题:「golang」Gin处理全局的404,500异常

文章地址:https://www.zhihuclub.com/86960.shtml

关于作者: 智云科技

热门文章

网站地图