mirror of
https://gitee.com/johng/gf
synced 2026-07-04 13:02:36 +08:00
add example for package gerror
This commit is contained in:
@ -222,6 +222,9 @@ func Code(err error) gcode.Code {
|
||||
if e, ok := err.(iNext); ok {
|
||||
return Code(e.Next())
|
||||
}
|
||||
if e, ok := err.(iUnwrap); ok {
|
||||
return Code(e.Unwrap())
|
||||
}
|
||||
return gcode.CodeNil
|
||||
}
|
||||
|
||||
@ -236,6 +239,9 @@ func Cause(err error) error {
|
||||
if e, ok := err.(iNext); ok {
|
||||
return Cause(e.Next())
|
||||
}
|
||||
if e, ok := err.(iUnwrap); ok {
|
||||
return Cause(e.Unwrap())
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@ -49,3 +49,9 @@ type iNext interface {
|
||||
Error() string
|
||||
Next() error
|
||||
}
|
||||
|
||||
// iUnwrap is the interface for Unwrap feature.
|
||||
type iUnwrap interface {
|
||||
Error() string
|
||||
Unwrap() error
|
||||
}
|
||||
|
||||
@ -55,3 +55,30 @@ func ExampleWrapCodef() {
|
||||
// It's Custom Error: permission denied
|
||||
// 10000
|
||||
}
|
||||
|
||||
func ExampleEqual() {
|
||||
err1 := errors.New("permission denied")
|
||||
err2 := gerror.New("permission denied")
|
||||
err3 := gerror.NewCode(gcode.CodeNotAuthorized, "permission denied")
|
||||
fmt.Println(gerror.Equal(err1, err2))
|
||||
fmt.Println(gerror.Equal(err2, err3))
|
||||
|
||||
// Output:
|
||||
// true
|
||||
// false
|
||||
}
|
||||
|
||||
func ExampleIs() {
|
||||
err1 := errors.New("permission denied")
|
||||
err2 := gerror.Wrap(err1, "operation failed")
|
||||
fmt.Println(gerror.Is(err1, err1))
|
||||
fmt.Println(gerror.Is(err2, err2))
|
||||
fmt.Println(gerror.Is(err2, err1))
|
||||
fmt.Println(gerror.Is(err1, err2))
|
||||
|
||||
// Output:
|
||||
// false
|
||||
// true
|
||||
// true
|
||||
// false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user