43 lines
977 B
Go
43 lines
977 B
Go
package oss
|
|
|
|
import "errors"
|
|
|
|
// 预定义错误
|
|
var (
|
|
ErrFileNotFound = errors.New("file not found")
|
|
ErrInvalidCredential = errors.New("invalid credential")
|
|
ErrAccessDenied = errors.New("access denied")
|
|
ErrInvalidParameter = errors.New("invalid parameter")
|
|
ErrNetworkError = errors.New("network error")
|
|
ErrTimeout = errors.New("operation timeout")
|
|
)
|
|
|
|
// OSSError OSS 操作错误
|
|
type OSSError struct {
|
|
Code string // 错误代码
|
|
Message string // 错误信息
|
|
Err error // 底层错误
|
|
}
|
|
|
|
// Error 实现 error 接口
|
|
func (e *OSSError) Error() string {
|
|
if e.Err != nil {
|
|
return e.Code + ": " + e.Message + " (" + e.Err.Error() + ")"
|
|
}
|
|
return e.Code + ": " + e.Message
|
|
}
|
|
|
|
// Unwrap 支持错误包装
|
|
func (e *OSSError) Unwrap() error {
|
|
return e.Err
|
|
}
|
|
|
|
// NewError 创建新的 OSS 错误
|
|
func NewError(code, message string, err error) *OSSError {
|
|
return &OSSError{
|
|
Code: code,
|
|
Message: message,
|
|
Err: err,
|
|
}
|
|
}
|