1 Star 0 Fork 0

GarlicBoris/gozero-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
code_err.go 1.13 KB
一键复制 编辑 原始数据 按行查看 历史
yanwc 提交于 9个月前 . feat:errx
package errx
import (
"fmt"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
type CodeErr struct {
code ErrCode // 错误编码
msg string // 错误消息
innerError error
}
func (e *CodeErr) GetErrCode() ErrCode {
return e.code
}
func (e *CodeErr) InnerError() error {
return e.innerError
}
// EqualCode 对比错误码是否相等
func EqualCode(err error, code ErrCode) bool {
return status.Code(err) == codes.Code(code)
}
func (e *CodeErr) Error() string {
return fmt.Sprintf("[%d]%s", e.code, e.msg)
}
func NewCodeErrWithMsg(code ErrCode, msg string, inner error, opts ...CodeErrOption) *CodeErr {
params := append([]CodeErrOption{}, WithCodeOption(code), WithMsgOption(msg), WithErrorOption(inner))
params = append(params, opts...)
return NewCodeError(params...)
}
func NewCodeError(opts ...CodeErrOption) *CodeErr {
codeErr := CodeErr{
msg: "系统错误",
code: SERVER_COMMON_ERROR,
}
for _, opt := range opts {
opt(&codeErr)
}
if codeErr.code != SERVER_COMMON_ERROR && len(codeErr.msg) == 0 {
if m, ok := message[codeErr.code]; ok {
codeErr.msg = m
}
}
return &codeErr
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/yanwc/gozero-utils.git
git@gitee.com:yanwc/gozero-utils.git
yanwc
gozero-utils
gozero-utils
v1.2.53

搜索帮助