Documentation
¶
Overview ¶
ierrors package provides a wrapper around the "errors" package from the standard library of Go. It enhances error handling by adding additional error creation and manipulation functions. This package also supports stacktraces when the "stacktrace" build tag is added.
Index ¶
- func As(err error, target any) bool
- func Chain(errs ...error) error
- func Errorf(format string, args ...any) error
- func Is(err, target error) bool
- func Join(errs ...error) error
- func New(text string) error
- func Unwrap(err error) error
- func WithMessage(err error, message string) error
- func WithMessagef(err error, format string, args ...interface{}) error
- func WithStack(err error) error
- func Wrap(err error, message string) error
- func Wrapf(err error, format string, args ...interface{}) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func As ¶
As finds the first error in err's tree that matches target, and if one is found, sets target to that error value and returns true. Otherwise, it returns false.
The tree consists of err itself, followed by the errors obtained by repeatedly calling Unwrap. When err wraps multiple errors, As examines err followed by a depth-first traversal of its children.
An error matches target if the error's concrete value is assignable to the value pointed to by target, or if the error has a method As(interface{}) bool such that As(target) returns true. In the latter case, the As method is responsible for setting target.
An error type might provide an As method so it can be treated as if it were a different error type.
As panics if target is not a non-nil pointer to either a type that implements error, or to any interface type.
func Chain ¶
Chain chains multiple errors into a single error by wrapping them. Any nil error values are discarded. Chain returns nil if every value in errs is nil. Chain adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
func Errorf ¶
Errorf formats according to a format specifier and returns the string as a value that satisfies error.
If the format specifier includes a %w verb with an error operand, the returned error will implement an Unwrap method returning the operand. If there is more than one %w verb, the returned error will implement an Unwrap method returning a []error containing all the %w operands in the order they appear in the arguments. It is invalid to supply the %w verb with an operand that does not implement the error interface. The %w verb is otherwise a synonym for %v. Errorf adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
func Is ¶
Is reports whether any error in err's tree matches target.
The tree consists of err itself, followed by the errors obtained by repeatedly calling Unwrap. When err wraps multiple errors, Is examines err followed by a depth-first traversal of its children.
An error is considered to match a target if it is equal to that target or if it implements a method Is(error) bool such that Is(target) returns true.
An error type might provide an Is method so it can be treated as equivalent to an existing error. For example, if MyError defines
func (m MyError) Is(target error) bool { return target == fs.ErrExist }
then Is(MyError{}, fs.ErrExist) returns true. See syscall.Errno.Is for an example in the standard library. An Is method should only shallowly compare err and the target and not call Unwrap on either.
func Join ¶
Join returns an error that wraps the given errors. Any nil error values are discarded. Join returns nil if errs contains no non-nil values. The error formats as the concatenation of the strings obtained by calling the Error method of each element of errs, with a newline between each string. Join adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
func New ¶
New returns an error that formats as the given text. Each call to New returns a distinct error value even if the text is identical.
func Unwrap ¶
Unwrap returns the result of calling the Unwrap method on err, if err's type contains an Unwrap method returning error. Otherwise, Unwrap returns nil.
Unwrap returns nil if the Unwrap method returns []error.
func WithMessage ¶
WithMessage appends a message to the error and wraps it into a new error. WithMessage adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
func WithMessagef ¶
WithMessagef appends a message format specifier and arguments to the error and wraps it into a new error. WithMessagef adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
func WithStack ¶
WithStack adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
func Wrap ¶
Wrap prepends an error with a message and wraps it into a new error. Wrap adds a stacktrace to the error if there was no stacktrace in the error tree yet and if the build flag "stacktrace" is set.
Types ¶
This section is empty.