intelligence_finance_v1-202.../intelligence_finance_v1/errors.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)
)