errors

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetErrorDetails

func GetErrorDetails(err error) map[string]interface{}

GetErrorDetails 获取错误详情

func IsAuthError

func IsAuthError(err error) bool

IsAuthError 检查是否为认证错误

func IsAuthzError

func IsAuthzError(err error) bool

IsAuthzError 检查是否为授权错误

func IsConfigError

func IsConfigError(err error) bool

IsConfigError 检查是否为配置错误

Types

type AppError

type AppError struct {
	Code    ErrorCode              // 错误代码
	Message string                 // 人类可读的错误消息
	Details map[string]interface{} // 额外的上下文信息
	Err     error                  // 底层错误(可选)
}

AppError 应用级错误,包含结构化信息

func AuthExpired

func AuthExpired(expiresAt string) *AppError

func AuthFailed

func AuthFailed(reason string) *AppError

func AuthInvalidHeader

func AuthInvalidHeader(headerName string) *AppError

func AuthInvalidToken

func AuthInvalidToken(reason string) *AppError

func AuthzInsufficientRoles

func AuthzInsufficientRoles(required, actual []string) *AppError

func AuthzJWTRequired

func AuthzJWTRequired() *AppError

func AuthzMethodNotAllowed

func AuthzMethodNotAllowed(method string, allowed []string) *AppError

func ConfigInvalid

func ConfigInvalid(err error) *AppError

func ConfigNotFound

func ConfigNotFound(path string) *AppError

func ConfigPermissionError

func ConfigPermissionError(path, mode string) *AppError

func ConfigValidationError

func ConfigValidationError(field, reason string) *AppError

func EnvVarNotSet

func EnvVarNotSet(varName string) *AppError

func NewAppError

func NewAppError(code ErrorCode, message string, err error) *AppError

NewAppError 创建新的应用错误

func RateLimitExceeded

func RateLimitExceeded(retryAfter string) *AppError

func ServerInternalError

func ServerInternalError(err error) *AppError

func ServerStartupError

func ServerStartupError(err error) *AppError

func (*AppError) Error

func (e *AppError) Error() string

Error 实现 error 接口

func (*AppError) Is

func (e *AppError) Is(target error) bool

Is 实现 errors.Is 接口

func (*AppError) Unwrap

func (e *AppError) Unwrap() error

Unwrap 实现 errors.Unwrap 接口

func (*AppError) WithDetail

func (e *AppError) WithDetail(key string, value interface{}) *AppError

WithDetail 添加详细信息

type ErrorCode

type ErrorCode string

ErrorCode 错误代码类型

const (
	// Configuration errors
	ErrCodeConfigNotFound   ErrorCode = "CONFIG_NOT_FOUND"
	ErrCodeConfigInvalid    ErrorCode = "CONFIG_INVALID"
	ErrCodeConfigValidation ErrorCode = "CONFIG_VALIDATION"
	ErrCodeConfigPermission ErrorCode = "CONFIG_PERMISSION"
	ErrCodeConfigReload     ErrorCode = "CONFIG_RELOAD"
	ErrCodeEnvVarNotSet     ErrorCode = "ENV_VAR_NOT_SET"
	ErrCodeEnvVarResolution ErrorCode = "ENV_VAR_RESOLUTION"

	// Authentication errors
	ErrCodeAuthFailed        ErrorCode = "AUTH_FAILED"
	ErrCodeAuthInvalidHeader ErrorCode = "AUTH_INVALID_HEADER"
	ErrCodeAuthExpired       ErrorCode = "AUTH_EXPIRED"
	ErrCodeAuthInvalidToken  ErrorCode = "AUTH_INVALID_TOKEN"       //nolint:gosec
	ErrCodeAuthInvalidCreds  ErrorCode = "AUTH_INVALID_CREDENTIALS" //nolint:gosec

	// Authorization errors
	ErrCodeAuthzInsufficientRoles ErrorCode = "AUTHZ_INSUFFICIENT_ROLES"
	ErrCodeAuthzMethodNotAllowed  ErrorCode = "AUTHZ_METHOD_NOT_ALLOWED"
	ErrCodeAuthzJWTRequired       ErrorCode = "AUTHZ_JWT_REQUIRED"

	// Rate limiting errors
	ErrCodeRateLimitExceeded ErrorCode = "RATE_LIMIT_EXCEEDED"

	// Server errors
	ErrCodeServerStartup  ErrorCode = "SERVER_STARTUP"
	ErrCodeServerInternal ErrorCode = "SERVER_INTERNAL"
)

func GetErrorCode

func GetErrorCode(err error) ErrorCode

GetErrorCode 获取错误代码

Jump to

Keyboard shortcuts

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