xy_sh-20260724180223/xy_sh/errors.go

55 lines
1.3 KiB
Go

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)
)