package xy_sh import "fmt" // ErrorCode 定义错误码类型 type ErrorCode int const ( // ErrCodeSuccess 请求成功 ErrCodeSuccess ErrorCode = 0 // ErrCodeFail 请求失败 ErrCodeFail ErrorCode = -1 ) // SDKError SDK自定义错误 type SDKError struct { Code ErrorCode Message string Err error } func (e *SDKError) Error() string { if e.Err != nil { return fmt.Sprintf("[%d] %s: %v", e.Code, e.Message, e.Err) } return fmt.Sprintf("[%d] %s", e.Code, e.Message) } func (e *SDKError) Unwrap() error { return e.Err } // NewSDKError 创建SDK错误 func NewSDKError(code ErrorCode, message string, err error) *SDKError { return &SDKError{ Code: code, Message: message, Err: err, } } var ( // ErrInvalidConfig 无效配置 ErrInvalidConfig = NewSDKError(ErrCodeFail, "无效配置", nil) // ErrEncryptFailed 加密失败 ErrEncryptFailed = NewSDKError(ErrCodeFail, "加密失败", nil) // ErrDecryptFailed 解密失败 ErrDecryptFailed = NewSDKError(ErrCodeFail, "解密失败", nil) // ErrSignFailed 签名失败 ErrSignFailed = NewSDKError(ErrCodeFail, "签名失败", nil) // ErrRequestFailed 请求失败 ErrRequestFailed = NewSDKError(ErrCodeFail, "请求失败", nil) // ErrResponseParseFailed 响应解析失败 ErrResponseParseFailed = NewSDKError(ErrCodeFail, "响应解析失败", nil) )