39 lines
715 B
Go
39 lines
715 B
Go
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)
|
|
}
|