error
NewCode/NewCodef
New/Newf
方法,用于创建一个自定义错误信息的error
对象,并包含堆栈信息,并增加错误码对象的输入。格式:
NewCode(code gcode.Code, text ...string) error NewCodef(code gcode.Code, format string, args ...interface{}) error |
实例:
func ExampleNewCode() { err := gerror.NewCode(gcode.New(10000, "", nil), "My Error") fmt.Println(err.Error()) fmt.Println(gerror.Code(err)) // Output: // My Error // 10000 } func ExampleNewCodef() { err := gerror.NewCodef(gcode.New(10000, "", nil), "It's %s", "My Error") fmt.Println(err.Error()) fmt.Println(gerror.Code(err).Code()) // Output: // It's My Error // 10000 } |
WrapCode/WrapCodef
Wrap/Wrapf
方法,用于包裹其他错误error
对象,构造成多级的错误信息,包含堆栈信息,并增加错误码参数的输入。格式:
WrapCode(code gcode.Code, err error, text ...string) error WrapCodef(code gcode.Code, err error, format string, args ...interface{}) error |
示例:
func ExampleWrapCode() { err1 := errors.New("permission denied") err2 := gerror.WrapCode(gcode.New(10000, "", nil), err1, "Custom Error") fmt.Println(err2.Error()) fmt.Println(gerror.Code(err2).Code()) // Output: // Custom Error: permission denied // 10000 } func ExampleWrapCodef() { err1 := errors.New("permission denied") err2 := gerror.WrapCodef(gcode.New(10000, "", nil), err1, "It's %s", "Custom Error") fmt.Println(err2.Error()) fmt.Println(gerror.Code(err2).Code()) // Output: // It's Custom Error: permission denied // 10000 } |
NewSkip/NewSkipf
,用于创建一个自定义错误信息的error
对象,并且忽略部分堆栈信息(按照当前调用方法位置往上忽略),并增加错误参数输入。格式:
func NewCodeSkip(code, skip int, text string) error func NewCodeSkipf(code, skip int, format string, args ...interface{}) error |
error
中的错误码接口func Code(err error) gcode.Code |
当给定的error
参数不带有错误码信息时,该方法返回预定义的错误码gcode.CodeNil