mirror of
https://github.com/charlienet/go-mixed.git
synced 2025-07-18 00:22:41 +08:00
update
This commit is contained in:
@ -12,6 +12,17 @@ const (
|
||||
defaultErrorCode = "999999"
|
||||
)
|
||||
|
||||
type Error interface {
|
||||
Wraped() []error
|
||||
Code() string
|
||||
|
||||
error
|
||||
|
||||
private()
|
||||
}
|
||||
|
||||
var _ Error = &CodeError{}
|
||||
|
||||
type CodeError struct {
|
||||
cause error // 原始错误信息
|
||||
code string // 错误码
|
||||
@ -70,6 +81,10 @@ func (e *CodeError) WithCause(err error) *CodeError {
|
||||
return new(err, e.code, e.message)
|
||||
}
|
||||
|
||||
func (e *CodeError) Wraped() []error {
|
||||
return []error{}
|
||||
}
|
||||
|
||||
func (e *CodeError) Format(s fmt.State, verb rune) {
|
||||
switch verb {
|
||||
case 'v':
|
||||
@ -86,6 +101,8 @@ func (e *CodeError) Format(s fmt.State, verb rune) {
|
||||
}
|
||||
}
|
||||
|
||||
func (*CodeError) private() {}
|
||||
|
||||
func new(err error, code string, args ...any) *CodeError {
|
||||
return &CodeError{
|
||||
code: code,
|
||||
@ -102,7 +119,7 @@ func newf(err error, code string, format string, args ...any) *CodeError {
|
||||
}
|
||||
}
|
||||
|
||||
func Error(code string, args ...any) *CodeError {
|
||||
func ErrorWithCode(code string, args ...any) *CodeError {
|
||||
return new(nil, code, args...)
|
||||
}
|
||||
|
||||
|
@ -16,8 +16,8 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
globalError = errors.Error(defaultErrorCode, "全局错误对象")
|
||||
errorbyCode = errors.Error(testCode, "全局错误对象")
|
||||
globalError = errors.ErrorWithCode(defaultErrorCode, "全局错误对象")
|
||||
errorbyCode = errors.ErrorWithCode(testCode, "全局错误对象")
|
||||
)
|
||||
|
||||
func TestPersetError(t *testing.T) {
|
||||
@ -40,7 +40,7 @@ func TestWithMessage(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestNewError(t *testing.T) {
|
||||
var e error = errors.Error("123456", "测试")
|
||||
var e error = errors.ErrorWithCode("123456", "测试")
|
||||
|
||||
err := e.(*errors.CodeError)
|
||||
t.Log(e, err.Code())
|
||||
@ -58,17 +58,17 @@ func TestWithStack(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLogMessage(t *testing.T) {
|
||||
t.Logf("%+v", errors.Error("88888", "错误消息"))
|
||||
t.Log(errors.Error("77777"))
|
||||
t.Log(errors.Error("77777", "测试"))
|
||||
t.Logf("%+v", errors.ErrorWithCode("88888", "错误消息"))
|
||||
t.Log(errors.ErrorWithCode("77777"))
|
||||
t.Log(errors.ErrorWithCode("77777", "测试"))
|
||||
}
|
||||
|
||||
func TestIs(t *testing.T) {
|
||||
code1 := "000090"
|
||||
code2 := "000091"
|
||||
e1 := errors.Error(code1)
|
||||
e2 := errors.Error(code1)
|
||||
e3 := errors.Error(code2)
|
||||
e1 := errors.ErrorWithCode(code1)
|
||||
e2 := errors.ErrorWithCode(code1)
|
||||
e3 := errors.ErrorWithCode(code2)
|
||||
|
||||
t.Log(errors.Is(e1, e2))
|
||||
t.Log(errors.Is(e1, e3))
|
||||
|
Reference in New Issue
Block a user