代码拉取完成,页面将自动刷新
package common
import (
"fmt"
"net"
"os"
"syscall"
)
func NewError(str string) *Error {
return &Error{ErrCode: -1, Str: str}
}
func NewErrorWithCode(code int32, str string) *Error {
return &Error{ErrCode: code, Str: str}
}
type Error struct {
//错误码 0表示成功
ErrCode int32
//错误信息
Str string
//低层错误对象
Err error
//错误信息的参数
Param []interface{}
}
func (e *Error) Unwrap() error { return e.Err }
func (e *Error) Error() string {
if e == nil {
return "<nil>"
}
if e.Err == nil {
if len(e.Param) == 0 {
return e.Str
} else {
return fmt.Sprintf(e.Str, e.Param...)
}
} else {
if len(e.Param) == 0 {
return fmt.Sprintf("%s suberror: %v", e.Str, e.Err)
} else {
return fmt.Sprintf("%s suberror: %v", fmt.Sprintf(e.Str, e.Param...), e.Err)
}
}
}
// 延长错误信息
func (e Error) NewErr(suberr error, param ...interface{}) error {
e.Err = suberr
e.Param = param
return &e
}
// 从错误中读取最后的errno
func GetErrno(err error) int {
if opErr, ok := err.(*net.OpError); ok {
if sysCallErr, oks := opErr.Err.(*os.SyscallError); oks {
if en, oko := sysCallErr.Err.(syscall.Errno); oko {
return int(en)
}
}
}
return 0
}
// 获取信息中的错误
func GetError(v any) error {
if err, ok := v.(error); ok {
return err
} else {
return &Error{ErrCode: -1, Str: "unknown error.", Param: []interface{}{v}}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。