59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
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)
|
|
) |