feat: 添加应用错误处理结构及预定义错误码
This commit is contained in:
38
templates/project/app/errorx/middleware.go.tpl
Normal file
38
templates/project/app/errorx/middleware.go.tpl
Normal file
@@ -0,0 +1,38 @@
|
||||
package errorx
|
||||
|
||||
import "github.com/gofiber/fiber/v3"
|
||||
|
||||
// 全局实例
|
||||
var DefaultSender = NewResponseSender()
|
||||
|
||||
// Middleware 错误处理中间件
|
||||
func Middleware(c fiber.Ctx) error {
|
||||
err := c.Next()
|
||||
if err != nil {
|
||||
return DefaultSender.SendError(c, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 便捷函数
|
||||
func Wrap(err error) *AppError {
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return &AppError{
|
||||
Code: appErr.Code,
|
||||
Message: appErr.Message,
|
||||
StatusCode: appErr.StatusCode,
|
||||
Data: appErr.Data,
|
||||
originalErr: appErr,
|
||||
}
|
||||
}
|
||||
|
||||
return DefaultSender.handler.Handle(err)
|
||||
}
|
||||
|
||||
func SendError(ctx fiber.Ctx, err error) error {
|
||||
return DefaultSender.SendError(ctx, err)
|
||||
}
|
||||
Reference in New Issue
Block a user