code

package
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2025 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ErrSuccess - 200: OK.
	ErrSuccess int = iota + 100001

	// ErrUnknown - 500: Internal server error.
	ErrUnknown

	// ErrBind - 400: Error occurred while binding the request body to the struct.
	ErrBind

	// ErrValidation - 400: Validation failed.
	ErrValidation

	// ErrTokenInvalid - 401: Token invalid.
	ErrTokenInvalid
)

通用: 基本错误 Code must start with 1xxxxx.

View Source
const (
	// ErrDatabase - 500: Database error.
	ErrDatabase int = iota + 100101

	// ErrRedis - 500: Redis error.
	ErrRedis

	// ErrKafka - 500: Kafka error.
	ErrKafka

	// ErrExternalService - 500: External service error.
	ErrExternalService
)

通用:数据库类错误.

View Source
const (
	// ErrBadRequest - 400: Bad request.
	ErrBadRequest int = iota + 100400
	// ErrUnauthorized - 401: Unauthorized.
	ErrUnauthorized
	// ErrForbidden - 403: Forbidden.
	ErrForbidden
	// ErrNotFound - 404: Not found.
	ErrNotFound
	// ErrInternalServer - 500: Internal server error.
	ErrInternalServer
)

通用:HTTP状态码错误.

View Source
const (
	// ErrEncrypt - 401: Error occurred while encrypting the user password.
	ErrEncrypt int = iota + 100201

	// ErrSignatureInvalid - 401: Signature is invalid.
	ErrSignatureInvalid

	// ErrExpired - 401: Token expired.
	ErrExpired

	// ErrInvalidAuthHeader - 401: Invalid authorization header.
	ErrInvalidAuthHeader

	// ErrMissingHeader - 401: The `Authorization` header was empty.
	ErrMissingHeader

	// ErrPasswordIncorrect - 401: Password was incorrect.
	ErrPasswordIncorrect

	// ErrPermissionDenied - 403: Permission denied.
	ErrPermissionDenied

	// ErrAccountLocked - 403: Account is locked.
	ErrAccountLocked

	// ErrAccountDisabled - 403: Account is disabled.
	ErrAccountDisabled

	// ErrTooManyAttempts - 403: Too many login attempts.
	ErrTooManyAttempts
)

通用:认证授权类错误.

View Source
const (
	// ErrEncodingFailed - 500: Encoding failed due to an error with the data.
	ErrEncodingFailed int = iota + 100301

	// ErrDecodingFailed - 500: Decoding failed due to an error with the data.
	ErrDecodingFailed

	// ErrInvalidJSON - 500: Data is not valid JSON.
	ErrInvalidJSON

	// ErrEncodingJSON - 500: JSON data could not be encoded.
	ErrEncodingJSON

	// ErrDecodingJSON - 500: JSON data could not be decoded.
	ErrDecodingJSON

	// ErrInvalidYaml - 500: Data is not valid Yaml.
	ErrInvalidYaml

	// ErrEncodingYaml - 500: Yaml data could not be encoded.
	ErrEncodingYaml

	// ErrDecodingYaml - 500: Yaml data could not be decoded.
	ErrDecodingYaml
)

通用:编解码类错误.

View Source
const (
	// ErrUserNotFound - 404: User not found.
	ErrUserNotFound int = iota + 200000
	// ErrUserAlreadyExists - 400: User already exists.
	ErrUserAlreadyExists
	// ErrUserInvalidData - 400: User invalid data.
	ErrUserInvalidData
	// ErrUserPermissionDenied - 403: User permission denied.
	ErrUserPermissionDenied
	// ErrUserInUse - 400: User is in use.
	ErrUserInUse
	// ErrUserCreateFailed - 500: User create failed.
	ErrUserCreateFailed
	// ErrUserUpdateFailed ErrUser - 500: User update failed.
	ErrUserUpdateFailed
	// ErrUserDeleteFailed - 500: User delete failed.
	ErrUserDeleteFailed
)

User相关错误码

Variables

This section is empty.

Functions

func HTTPStatus added in v1.0.2

func HTTPStatus(code int) int

HTTPStatus 根据错误码返回对应的HTTP状态码 只支持标准的6个状态码:200, 400, 401, 403, 404, 500

func IsClientError added in v1.0.2

func IsClientError(code int) bool

IsClientError 判断是否为客户端错误(4xx)

func IsInternalError added in v1.0.2

func IsInternalError(code int) bool

IsInternalError 判断是否为内部错误(需要记录详细日志)

func IsServerError added in v1.0.2

func IsServerError(code int) bool

IsServerError 判断是否为服务器错误(5xx)

func NewBadRequestError added in v1.0.2

func NewBadRequestError(message string) error

NewBadRequestError 请求错误

func NewError added in v1.0.2

func NewError(code int, message string) error

NewError 创建带错误码的错误

func NewErrorf added in v1.0.2

func NewErrorf(code int, format string, args ...interface{}) error

NewErrorf 创建带错误码的格式化错误

func NewForbiddenError added in v1.0.2

func NewForbiddenError() error

NewForbiddenError 禁止访问错误

func NewNotFoundError added in v1.0.2

func NewNotFoundError(resource string) error

NewNotFoundError 资源不存在错误

func NewPermissionDeniedError added in v1.0.2

func NewPermissionDeniedError(resource, action string) error

NewPermissionDeniedError 权限拒绝错误

func NewTokenExpiredError added in v1.0.2

func NewTokenExpiredError() error

NewTokenExpiredError Token过期错误

func NewTokenInvalidError added in v1.0.2

func NewTokenInvalidError() error

NewTokenInvalidError Token无效错误

func NewUnauthorizedError added in v1.0.2

func NewUnauthorizedError() error

NewUnauthorizedError 未授权错误

func NewValidationError added in v1.0.2

func NewValidationError(field, message string) error

NewValidationError 验证错误

func WrapBadRequestError added in v1.0.2

func WrapBadRequestError(err error, message string) error

WrapBadRequestError 包装400错误

func WrapDatabaseError added in v1.0.2

func WrapDatabaseError(err error, operation string) error

WrapDatabaseError 包装数据库错误

func WrapError added in v1.0.2

func WrapError(err error, code int, message string) error

WrapError 包装错误并添加错误码

func WrapErrorf added in v1.0.2

func WrapErrorf(err error, code int, format string, args ...interface{}) error

WrapErrorf 包装错误并添加错误码(格式化)

func WrapExternalError added in v1.0.2

func WrapExternalError(err error, service, operation string) error

WrapExternalError 包装第三方服务错误

func WrapForbiddenError added in v1.0.2

func WrapForbiddenError(err error, message string) error

WrapForbiddenError 包装403错误

func WrapInternalServerError added in v1.0.2

func WrapInternalServerError(err error, message string) error

WrapInternalServerError 包装500错误

func WrapKafkaError added in v1.0.2

func WrapKafkaError(err error, operation string) error

WrapKafkaError 包装Kafka错误

func WrapNotFoundError added in v1.0.2

func WrapNotFoundError(err error, message string) error

WrapNotFoundError 包装404错误

func WrapRedisError added in v1.0.2

func WrapRedisError(err error, operation string) error

WrapRedisError 包装Redis错误

func WrapUnauthorizedError added in v1.0.2

func WrapUnauthorizedError(err error, message string) error

WrapUnauthorizedError 包装401错误

Types

type ErrCode

type ErrCode struct {
	// C refers to the code of the ErrCode.
	C int

	// HTTP status that should be used for the associated error code.
	HTTP int

	// External (user) facing error text.
	Ext string

	// Ref specify the reference document.
	Ref string
}

ErrCode implements `github.com/marmotedu/errors`.Coder interface.

func Lookup added in v1.0.2

func Lookup(code int) (*ErrCode, bool)

Lookup 返回注册的错误码描述

func (*ErrCode) Code

func (coder *ErrCode) Code() int

Code returns the integer code of ErrCode.

func (*ErrCode) HTTPStatus

func (coder *ErrCode) HTTPStatus() int

HTTPStatus returns the associated HTTP status code, if any. Otherwise, returns 200.

func (*ErrCode) Reference

func (coder *ErrCode) Reference() string

Reference returns the reference document.

func (*ErrCode) String

func (coder *ErrCode) String() string

String implements stringer. String returns the external error message, if any.

type ErrorCategory added in v1.0.2

type ErrorCategory string

ErrorCategory 错误分类

const (
	// 内部错误分类
	CategoryDatabase ErrorCategory = "database" // 数据库错误
	CategoryRedis    ErrorCategory = "redis"    // Redis错误
	CategoryKafka    ErrorCategory = "kafka"    // Kafka错误
	CategoryExternal ErrorCategory = "external" // 第三方服务错误
	CategorySystem   ErrorCategory = "system"   // 系统错误

	// 业务错误分类
	CategoryAuth       ErrorCategory = "auth"       // 认证错误
	CategoryPermission ErrorCategory = "permission" // 权限错误
	CategoryValidation ErrorCategory = "validation" // 参数验证错误
	CategoryBusiness   ErrorCategory = "business"   // 业务逻辑错误
)

type ErrorInfo added in v1.0.2

type ErrorInfo struct {
	Type     ErrorType     `json:"type"`     // 错误类型
	Category ErrorCategory `json:"category"` // 错误分类
	Code     int           `json:"code"`     // 业务错误码
	Message  string        `json:"message"`  // 错误消息
	Details  string        `json:"details"`  // 详细错误信息(内部错误时记录)
}

ErrorInfo 错误信息结构

func NewErrorInfo added in v1.0.2

func NewErrorInfo(err error) ErrorInfo

NewErrorInfo 根据错误实例构造标准错误信息

func (*ErrorInfo) IsBusiness added in v1.0.2

func (e *ErrorInfo) IsBusiness() bool

IsBusiness 判断是否为业务错误

func (*ErrorInfo) IsInternal added in v1.0.2

func (e *ErrorInfo) IsInternal() bool

IsInternal 判断是否为内部错误

type ErrorType added in v1.0.2

type ErrorType int

ErrorType 错误类型枚举

const (
	// InternalError 内部错误:数据库、Redis、Kafka等组件错误
	// 这些错误会记录详细日志,对外返回HTTP 500
	InternalError ErrorType = iota

	// BusinessError 业务错误:参数验证、权限、业务逻辑错误
	// 这些错误有明确的HTTP状态码和业务错误码,给前端明确提示
	BusinessError
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL