下面是通过自定义中间件的方式,定义一个统一处理请求错误的函数
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 通过自定义中间件,定义自定义错误处理函数
r.Use(func(c *gin.Context) {
// 延迟处理
defer func() {
// 通过recover获取错误信息
if err := recover(); err != nil {
// 统一以json格式返回错误信息
c.JSON(500, gin.H{
"status": 500,
"error": fmt.Sprint(err),
})
}
}()
c.Next()
})
// 测试路由
r.GET("/hello", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "Hello, tizi365.com!"})
})
r.Run(":8080")
}