Files
platform/web/error.go

34 lines
755 B
Go

package web
import (
"errors"
"log/slog"
"platform/web/common"
"reflect"
"github.com/gofiber/fiber/v2"
)
func ErrorHandler(c *fiber.Ctx, err error) error {
var code int
var message string
var fiberErr *fiber.Error
var serviceErr common.ServiceErr
if errors.As(err, &fiberErr) {
code = fiberErr.Code
message = fiberErr.Message
} else if errors.As(err, &fiberErr) {
code = serviceErr.Code()
message = serviceErr.Error()
} else {
code = fiber.StatusInternalServerError
message = "服务器异常"
slog.Debug("未处理的异常", slog.String("type", reflect.TypeOf(err).Name()), slog.String("error", err.Error()))
}
c.Set(fiber.HeaderContentType, fiber.MIMETextPlainCharsetUTF8)
return c.Status(code).SendString(message)
}