Package errors implements functions to manipulate errors.
▹ Example
▾ Example
Code:
package errors_test import ( "fmt" "time" ) // MyError is an error implementation that includes a time and message. type MyError struct { When time.Time What string } func (e MyError) Error() string { return fmt.Sprintf("%v: %v", e.When, e.What) } func oops() error { return MyError{ time.Date(1989, 3, 15, 22, 30, 0, 0, time.UTC), "the file system has gone away", } } func Example() { if err := oops(); err != nil { fmt.Println(err) } // Output: 1989-03-15 22:30:00 +0000 UTC: the file system has gone away }
In the call graph viewer below, each node is a function belonging to this package and its children are the functions it calls—perhaps dynamically.
The root nodes are the entry points of the package: functions that may be called from outside the package. There may be non-exported or anonymous functions among them if they are called dynamically from another package.
Click a node to visit that function's source code.
From there you can visit its callers by
clicking its declaring func
token.
Functions may be omitted if they were determined to be unreachable in the particular programs or tests that were analyzed.
func New(text string) error
New returns an error that formats as the given text.
▹ Example
▾ Example
Code:
err := errors.New("emit macho dwarf: elf header corrupted") if err != nil { fmt.Print(err) }
Output:
emit macho dwarf: elf header corrupted
▹ Example (Errorf)
▾ Example (Errorf)
The fmt package's Errorf function lets us use the package's formatting features to create descriptive error messages.
Code:
const name, id = "bimmler", 17 err := fmt.Errorf("user %q (id %d) not found", name, id) if err != nil { fmt.Print(err) }
Output:
user "bimmler" (id 17) not found