errors

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMissingAPIKey API Key缺失
	ErrMissingAPIKey = &SteamError{
		Type:    ErrTypeParam,
		Code:    10001,
		Message: "steam api key is missing",
		Err:     errors.New("steam api key is missing"),
	}

	// ErrInvalidSteamID 无效SteamID
	ErrInvalidSteamID = &SteamError{
		Type:    ErrTypeParam,
		Code:    10002,
		Message: "invalid steam id",
		Err:     errors.New("invalid steam id"),
	}

	// ErrInvalidAppID 无效AppID
	ErrInvalidAppID = &SteamError{
		Type:    ErrTypeParam,
		Code:    10003,
		Message: "invalid app id (app id cannot be 0)",
		Err:     errors.New("invalid app id"),
	}

	// ErrAPIResponse 响应解析失败
	ErrAPIResponse = &SteamError{
		Type:    ErrTypeParse,
		Code:    20001,
		Message: "failed to parse steam api response",
		Err:     errors.New("json unmarshal failed"),
	}

	// ErrAPIQuotaExceeded API额度超限
	ErrAPIQuotaExceeded = &SteamError{
		Type:    ErrTypeRequest,
		Code:    30001,
		Message: "steam api quota exceeded (429)",
		Err:     errors.New("api rate limit exceeded"),
	}

	// ErrRequestFailed 请求失败
	ErrRequestFailed = &SteamError{
		Type:    ErrTypeRequest,
		Code:    30002,
		Message: "steam api request failed",
		Err:     errors.New("http request failed"),
	}

	// ErrAchievementFailed 成就查询失败
	ErrAchievementFailed = &SteamError{
		Type:    ErrTypeAPI,
		Code:    40001,
		Message: "steam api return success=false (achievements not found or permission denied)",
		Err:     errors.New("achievements query failed"),
	}
)

预设通用错误 | Preset common errors

Functions

func GetCode

func GetCode(err error) int

GetCode 获取错误码 参数:

  • err: 错误实例 | Error instance

返回值:

  • int: 错误码(非SteamError返回-1) | Error code (-1 for non-SteamError)

func New

func New(msg string) error

New 快速创建自定义SteamError 默认类型为 ErrTypeAPI 参数:

  • msg: 错误描述 | Error message

返回值:

  • error: 自定义错误 | Custom error

func NewWithType

func NewWithType(errType ErrType, msg string, err error) error

NewWithType 按类型创建自定义错误 参数:

  • errType: 错误类型 | Error type
  • msg: 错误描述 | Error message
  • err: 原始错误 | Original error

返回值:

  • error: 自定义错误 | Custom error

Types

type ErrType

type ErrType string

ErrType 错误类型枚举 分类管理不同场景的错误,便于错误处理和排查 ErrType is the error type enumeration Manages errors of different scenarios for easy error handling and troubleshooting

const (
	ErrTypeParam   ErrType = "param"   // 参数错误(如空SteamID、无效AppID)
	ErrTypeRequest ErrType = "request" // 请求错误(如网络、超时、429)
	ErrTypeParse   ErrType = "parse"   // 解析错误(如JSON反序列化失败)
	ErrTypeAPI     ErrType = "api"     // Steam API业务错误(如success=false)
	ErrTypeCrawler ErrType = "crawler" //爬虫
)

func GetType

func GetType(err error) ErrType

GetType 获取错误类型 参数:

  • err: 错误实例 | Error instance

返回值:

  • ErrType: 错误类型(非SteamError返回空) | Error type (empty for non-SteamError)

type SteamError

type SteamError struct {
	Type    ErrType // 错误类型 | Error type
	Code    int     // 错误码 | Error code
	Message string  // 错误描述 | Error description
	Err     error   // 原始错误 | Original error
}

SteamError 自定义错误结构体 封装错误类型、错误码、描述和原始错误,支持标准库错误处理方法 SteamError is the custom error structure Encapsulates error type, error code, description and original error, supports standard library error handling methods

func (*SteamError) Error

func (e *SteamError) Error() string

Error 实现 error 接口 返回格式化的错误信息 返回值:

  • string: 错误字符串 | Error string

func (*SteamError) Is

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

Is 支持标准库 errors.Is 比较两个 SteamError 是否相同(类型+描述) 参数:

  • target: 目标错误 | Target error

返回值:

  • bool: 是否匹配 | Whether matched

func (*SteamError) Unwrap

func (e *SteamError) Unwrap() error

Unwrap 支持标准库 errors.Unwrap 返回原始错误 返回值:

  • error: 原始错误 | Original error

Jump to

Keyboard shortcuts

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