Documentation ¶
Overview ¶
Package gerror provides simple functions to manipulate errors.
Very note that, this package is quite a basic package, which SHOULD NOT import extra packages except standard packages and internal packages, to avoid cycle imports.
Index ¶
- func Cause(err error) error
- func Code(err error) gcode.Code
- func Current(err error) error
- func HasStack(err error) bool
- func New(text string) error
- func NewCode(code gcode.Code, text ...string) error
- func NewCodeSkip(code gcode.Code, skip int, text ...string) error
- func NewCodeSkipf(code gcode.Code, skip int, format string, args ...interface{}) error
- func NewCodef(code gcode.Code, format string, args ...interface{}) error
- func NewOption(option Option) error
- func NewSkip(skip int, text string) error
- func NewSkipf(skip int, format string, args ...interface{}) error
- func Newf(format string, args ...interface{}) error
- func Next(err error) error
- func Stack(err error) string
- func Wrap(err error, text string) error
- func WrapCode(code gcode.Code, err error, text ...string) error
- func WrapCodeSkip(code gcode.Code, skip int, err error, text ...string) error
- func WrapCodeSkipf(code gcode.Code, skip int, err error, format string, args ...interface{}) error
- func WrapCodef(code gcode.Code, err error, format string, args ...interface{}) error
- func WrapSkip(skip int, err error, text string) error
- func WrapSkipf(skip int, err error, format string, args ...interface{}) error
- func Wrapf(err error, format string, args ...interface{}) error
- type Error
- func (err *Error) Cause() error
- func (err *Error) Code() gcode.Code
- func (err *Error) Current() error
- func (err *Error) Error() string
- func (err *Error) Format(s fmt.State, verb rune)
- func (err Error) MarshalJSON() ([]byte, error)
- func (err *Error) Next() error
- func (err *Error) SetCode(code gcode.Code)
- func (err *Error) Stack() string
- type Option
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Code ¶
Code returns the error code of current error. It returns CodeNil if it has no error code neither it does not implement interface Code.
func Current ¶
Current creates and returns the current level error. It returns nil if current level error is nil.
func NewCode ¶
NewCode creates and returns an error that has error code and given text.
Example ¶
package main import ( "fmt" "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/errors/gerror" ) func main() { err := gerror.NewCode(gcode.New(10000, "", nil), "My Error") fmt.Println(err.Error()) fmt.Println(gerror.Code(err)) }
Output: My Error 10000
func NewCodeSkip ¶
NewCodeSkip creates and returns an error which has error code and is formatted from given text. The parameter `skip` specifies the stack callers skipped amount.
func NewCodeSkipf ¶
NewCodeSkipf returns an error that has error code and formats as the given format and args. The parameter `skip` specifies the stack callers skipped amount.
func NewCodef ¶
NewCodef returns an error that has error code and formats as the given format and args.
Example ¶
package main import ( "fmt" "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/errors/gerror" ) func main() { 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
func NewOption ¶
NewOption creates and returns an error with Option. It is the senior usage for creating error, which is often used internally in framework.
func NewSkip ¶
NewSkip creates and returns an error which is formatted from given text. The parameter `skip` specifies the stack callers skipped amount.
func NewSkipf ¶
NewSkipf returns an error that formats as the given format and args. The parameter `skip` specifies the stack callers skipped amount.
func Next ¶
Next returns the next level error. It returns nil if current level error or the next level error is nil.
func Stack ¶
Stack returns the stack callers as string. It returns the error string directly if the `err` does not support stacks.
func Wrap ¶
Wrap wraps error with text. It returns nil if given err is nil. Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
func WrapCode ¶
WrapCode wraps error with code and text. It returns nil if given err is nil.
Example ¶
package main import ( "errors" "fmt" "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/errors/gerror" ) func main() { 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 WrapCodeSkip ¶
WrapCodeSkip wraps error with code and text. It returns nil if given err is nil. The parameter `skip` specifies the stack callers skipped amount.
func WrapCodeSkipf ¶
WrapCodeSkipf wraps error with code and text that is formatted with given format and args. It returns nil if given err is nil. The parameter `skip` specifies the stack callers skipped amount.
func WrapCodef ¶
WrapCodef wraps error with code and format specifier. It returns nil if given `err` is nil.
Example ¶
package main import ( "errors" "fmt" "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/errors/gerror" ) func main() { 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
func WrapSkip ¶
WrapSkip wraps error with text. It returns nil if given err is nil. The parameter `skip` specifies the stack callers skipped amount. Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
func WrapSkipf ¶
WrapSkipf wraps error with text that is formatted with given format and args. It returns nil if given err is nil. The parameter `skip` specifies the stack callers skipped amount. Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
Types ¶
type Error ¶
type Error struct {
// contains filtered or unexported fields
}
Error is custom error for additional features.
func (*Error) Current ¶
Current creates and returns the current level error. It returns nil if current level error is nil.
func (*Error) Format ¶
Format formats the frame according to the fmt.Formatter interface.
%v, %s : Print all the error string; %-v, %-s : Print current level error string; %+s : Print full stack error list; %+v : Print the error string and full stack error list;
func (Error) MarshalJSON ¶
MarshalJSON implements the interface MarshalJSON for json.Marshal. Note that do not use pointer as its receiver here.
func (*Error) Next ¶
Next returns the next level error. It returns nil if current level error or the next level error is nil.