自定义错误体系,支持错误码、错误消息和堆栈追踪,基于 github.com/pingcap/errors 和 github.com/pkg/errors。
type ErrInfo struct {
Code int // 错误码
Message string // 错误消息
}包含常见 HTTP/业务错误码:
ErrCodeSuccess(0) - 成功ErrCodeBadRequest(400) - 请求错误ErrCodeUnauthorized(401) - 未授权ErrCodeForbidden(403) - 禁止访问ErrCodeNotFound(404) - 资源不存在ErrCodeInternalError(500) - 服务器内部错误- 其他业务自定义错误码
import "github.com/jasonlabz/potato/errors"
// 创建错误
err := errors.New("something went wrong")
// 带错误码
err = errors.NewWithCode(500, "internal error")
// 包装错误(保留堆栈)
err = errors.Wrap(originalErr, "additional context")
// 获取错误码
code := errors.GetCode(err)