You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
666 B
27 lines
666 B
package middleware
|
|
|
|
import (
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/net/ghttp"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
)
|
|
|
|
// ErrorHandler 全局处理获取异常错误
|
|
func ErrorHandler(r *ghttp.Request) {
|
|
r.Middleware.Next()
|
|
if err := r.GetError(); err != nil {
|
|
// 记录到自定义错误日志文件
|
|
g.Log().Error(gctx.New(), err)
|
|
//返回固定的友好信息
|
|
var (
|
|
code = gerror.Code(err)
|
|
)
|
|
r.Response.ClearBuffer()
|
|
r.Response.WriteJson(DefaultHandlerResponse{
|
|
Code: code.Code(),
|
|
Message: "The server went astray. Please try again later: " + err.Error(),
|
|
Data: nil,
|
|
})
|
|
}
|
|
}
|
|
|