package intelligence_finance_v1 import "fmt" // SDKError SDK通用错误类型 type SDKError struct { Code int `json:"code"` Message string `json:"message"` Err error `json:"-"` } // Error 实现error接口 func (e *SDKError) Error() string { if e.Err != nil { return fmt.Sprintf("code=%d, message=%s, err=%v", e.Code, e.Message, e.Err) } return fmt.Sprintf("code=%d, message=%s", e.Code, e.Message) } // Unwrap 返回包装的错误 func (e *SDKError) Unwrap() error { return e.Err } // NewSDKError 创建SDK错误 func NewSDKError(code int, message string, err error) *SDKError { return &SDKError{ Code: code, Message: message, Err: err, } } // 预定义错误码 const ( ErrCodeSuccess = 0 ErrCodeUnknown = -1 ErrCodeInvalidParam = 1001 ErrCodeSignatureFailed = 1002 ErrCodeNetworkError = 1003 ErrCodeRequestTimeout = 1004 ErrCodeServerError = 2001 ErrCodeUnauthorized = 2002 ErrCodeNotFound = 2003 ErrCodeRateLimit = 2004 ) // 预定义错误 var ( ErrUnknown = NewSDKError(ErrCodeUnknown, "未知错误", nil) ErrInvalidParam = NewSDKError(ErrCodeInvalidParam, "参数无效", nil) ErrSignatureFailed = NewSDKError(ErrCodeSignatureFailed, "签名失败", nil) ErrNetworkError = NewSDKError(ErrCodeNetworkError, "网络错误", nil) ErrRequestTimeout = NewSDKError(ErrCodeRequestTimeout, "请求超时", nil) ErrServerError = NewSDKError(ErrCodeServerError, "服务端错误", nil) ErrUnauthorized = NewSDKError(ErrCodeUnauthorized, "未授权", nil) ErrNotFound = NewSDKError(ErrCodeNotFound, "未找到", nil) ErrRateLimit = NewSDKError(ErrCodeRateLimit, "请求频率限制", nil) )