Documentation
¶
Index ¶
- func GetErrorDetails(err error) map[string]interface{}
- func IsAuthError(err error) bool
- func IsAuthzError(err error) bool
- func IsConfigError(err error) bool
- type AppError
- func AuthExpired(expiresAt string) *AppError
- func AuthFailed(reason string) *AppError
- func AuthInvalidHeader(headerName string) *AppError
- func AuthInvalidToken(reason string) *AppError
- func AuthzInsufficientRoles(required, actual []string) *AppError
- func AuthzJWTRequired() *AppError
- func AuthzMethodNotAllowed(method string, allowed []string) *AppError
- func ConfigInvalid(err error) *AppError
- func ConfigNotFound(path string) *AppError
- func ConfigPermissionError(path, mode string) *AppError
- func ConfigValidationError(field, reason string) *AppError
- func EnvVarNotSet(varName string) *AppError
- func NewAppError(code ErrorCode, message string, err error) *AppError
- func RateLimitExceeded(retryAfter string) *AppError
- func ServerInternalError(err error) *AppError
- func ServerStartupError(err error) *AppError
- type ErrorCode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetErrorDetails ¶
GetErrorDetails 获取错误详情
Types ¶
type AppError ¶
type AppError struct {
Code ErrorCode // 错误代码
Message string // 人类可读的错误消息
Details map[string]interface{} // 额外的上下文信息
Err error // 底层错误(可选)
}
AppError 应用级错误,包含结构化信息
func AuthExpired ¶
func AuthFailed ¶
func AuthInvalidHeader ¶
func AuthInvalidToken ¶
func AuthzInsufficientRoles ¶
func AuthzJWTRequired ¶
func AuthzJWTRequired() *AppError
func AuthzMethodNotAllowed ¶
func ConfigInvalid ¶
func ConfigNotFound ¶
func ConfigPermissionError ¶
func ConfigValidationError ¶
func EnvVarNotSet ¶
func NewAppError ¶
NewAppError 创建新的应用错误
func RateLimitExceeded ¶
func ServerInternalError ¶
func ServerStartupError ¶
func (*AppError) WithDetail ¶
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" )
Click to show internal directories.
Click to hide internal directories.