Package errors

import "errors"
Overview
Index
Examples
Documentation

Overview

Package errors implements functions to manipulate errors.

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
}

Output:

1989-03-15 22:30:00 +0000 UTC: the file system has gone away

Index

func New(text string) error

Examples

Package
New
New (Errorf)

Documentation

func New

func New(text string) error

New returns an error that formats as the given text.

Code:

err := errors.New("emit macho dwarf: elf header corrupted")
if err != nil {
    fmt.Print(err)
}

Output:

emit macho dwarf: elf header corrupted

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