Documentation
¶
Overview ¶
Package error provides rich functionalities to manipulate errors.
For maintainers, please note that this package is 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) code.Code
- func Current(err error) error
- func Equal(err, target error) bool
- func HasCode(err error, c code.Code) bool
- func HasError(err, target error) bool
- func HasStack(err error) bool
- func Is(err, target error) bool
- func New(text string) error
- func NewCode(c code.Code, text ...string) error
- func NewCodeSkip(c code.Code, skip int, text ...string) error
- func NewCodeSkipf(c code.Code, skip int, format string, args ...interface{}) error
- func NewCodef(c code.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 NewWithOption(option Option) error
- func Newf(format string, args ...interface{}) error
- func Stack(err error) string
- func Unwrap(err error) error
- func Wrap(err error, text string) error
- func WrapCode(c code.Code, err error, text ...string) error
- func WrapCodeSkip(c code.Code, skip int, err error, text ...string) error
- func WrapCodeSkipf(c code.Code, skip int, err error, format string, args ...interface{}) error
- func WrapCodef(c code.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() code.Code
- func (err *Error) Current() error
- func (err *Error) Equal(target error) bool
- func (err *Error) Error() string
- func (err *Error) Format(s fmt.State, verb rune)
- func (err *Error) Is(target error) bool
- func (err Error) MarshalJSON() ([]byte, error)
- func (err *Error) SetCode(c code.Code)
- func (err *Error) Stack() string
- func (err *Error) Unwrap() error
- type ErrorCause
- type ErrorCode
- type ErrorCurrent
- type ErrorEqual
- type ErrorIs
- type ErrorStack
- type ErrorUnwrap
- type Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Code ¶
Code returns the error code of the current error. It returns `CodeNil` if it has no error code or it does not implement the Code interface.
func Current ¶
Current creates and returns the current level error. It returns nil if the current level error is nil.
func Equal ¶
Equal reports whether the current error `err` equals to the error `target`. Please note that, in default comparison logic for `Error`, the errors are considered the same if both the `code` and `text` of them are the same.
func Is ¶
Is reports whether the current error `err` has error `target` in its chaining errors. It is just for implementation of stdlib errors.Is from Go version 1.17.
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.
func NewOption ¶
NewOption creates and returns a custom error with Option. Deprecated: use NewWithOption instead.
func NewSkip ¶
NewSkip creates and returns an error which is formatted from the 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 NewWithOption ¶
NewWithOption creates and returns a custom error with Option. It is the advanced usage for creating errors, which is often used internally in the framework.
func Stack ¶
Stack returns the stack callers as a string. It returns the error string directly if the `err` does not support stacks.
func Unwrap ¶
Unwrap returns the next level error. It returns nil if the current level error or the next level error is nil.
func Wrap ¶
Wrap wraps an error with text. It returns nil if the given error is nil. Note that it does not lose the error code of the wrapped error, as it inherits the error code from it.
func WrapCodeSkip ¶
WrapCodeSkip wraps error with code and text. It returns nil if the 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 the 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 the given `err` is nil.
func WrapSkip ¶
WrapSkip wraps an error with text. It returns nil if the given error is nil. The parameter `skip` specifies the stack callers skipped amount. Note that it does not lose the error code of the wrapped error, as it inherits the error code from it.
func WrapSkipf ¶
WrapSkipf wraps an error with text that is formatted with the given format and args. It returns nil if the given error is nil. The parameter `skip` specifies the stack callers skipped amount. Note that it does not lose the error code of the wrapped error, as it inherits the error code from it.
Types ¶
type Error ¶
type Error struct {
// contains filtered or unexported fields
}
Error is a custom error for additional features.
func (*Error) Current ¶
Current creates and returns the current level error. It returns nil if the current level error is nil.
func (*Error) Equal ¶
Equal reports whether the current error `err` equals to the error `target`. Please note that, in default comparison for `Error`, the errors are considered the same if both the `code` and `text` of them are the same.
func (*Error) Error ¶
Error implements the interface of Error, it returns all the error as a string.
func (*Error) Format ¶
Format formats the error 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) Is ¶
Is reports whether the current error `err` has error `target` in its chaining errors. It is just for implementation of stdlib errors.Is from Go version 1.17.
func (Error) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface for Error. Note that do not use a pointer as its receiver here.
type ErrorCause ¶
ErrorCause is the interface for Cause feature.
type ErrorCurrent ¶
ErrorCurrent is the interface for Current feature.
type ErrorEqual ¶
ErrorEqual is the interface for Equal feature.
type ErrorStack ¶
ErrorStack is the interface for Stack feature.
type ErrorUnwrap ¶
ErrorUnwrap is the interface for Unwrap feature.