Documentation
Overview ¶
Package errors implements functions to manipulate errors.
This package implements the Go 2 draft designs for error inspection and printing:
https://go.googlesource.com/proposal/+/master/design/go2draft.md
This is an EXPERIMENTAL package, and may change in arbitrary ways without notice.
Index ¶
Examples ¶
Constants ¶
Variables ¶
Functions ¶
func As ¶
As finds the first error in err's chain that matches a type to which target points, and if so, sets the target to its value and reports success. An error matches a type if it is of the same type, or if it has an As method such that As(target) returns true. As will panic if target is nil or not a pointer.
The As method should set the target to its value and report success if err matches the type to which target points and report success.
func Is ¶
Is returns true if any error in err's chain matches target.
An error is considered to match a target if it is equal to that target or if it implements an Is method such that Is(target) returns true.
func New ¶
New returns an error that formats as the given text.
The returned error embeds a Frame set to the caller's location and implements Formatter to show this information when printed with details.
Example (Errorf) ¶
The fmt package's Errorf function lets us use the package's formatting features to create descriptive error messages.
Output: user "bimmler" (id 17) not found
Types ¶
type Formatter ¶
type Formatter interface { error // FormatError prints the receiver's first error and returns the next error in // the error chain, if any. FormatError(p Printer) (next error) }
A Formatter formats error messages.
type Frame ¶
type Frame struct {
// contains filtered or unexported fields
}
A Frame contains part of a call stack.
type Printer ¶
type Printer interface { // Print appends args to the message output. Print(args ...interface{}) // Printf writes a formatted string. Printf(format string, args ...interface{}) // Detail reports whether error detail is requested. // After the first call to Detail, all text written to the Printer // is formatted as additional detail, or ignored when // detail has not been requested. // If Detail returns false, the caller can avoid printing the detail at all. Detail() bool }
A Printer formats error messages.
The most common implementation of Printer is the one provided by package fmt during Printf. Localization packages such as golang.org/x/text/message typically provide their own implementations.