龙空技术网

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

金沙湖一哥 275

前言:

现时你们对“异常代码500”大概比较看重,兄弟们都需要知道一些“异常代码500”的相关内容。那么小编在网上汇集了一些对于“异常代码500””的相关知识,希望看官们能喜欢,兄弟们一起来学习一下吧!

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

package mainimport (	"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")}

标签: #异常代码500