...

Package errors

import "errors"
概览
索引
示例

概览 ▾

error 包实现了用于错误处理的函数.

示例

代码:

package errors_test

import (
    "fmt"
    "time"
)

// MyError is an error implementation that includes a time and message.

// MyError 是一个包含了时间和消息的错误实现。
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
}

func New

func New(text string) error

New 返回一个按给定文本格式化的错误。

示例

代码:

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

输出:

emit macho dwarf: elf header corrupted

示例 (Errorf)

fmt 包的 Errorf 函数让我们使用该包的格式化特性来创建描述性的错误信息。

代码:

const name, id = "bimmler", 17
err := fmt.Errorf("user %q (id %d) not found", name, id)
if err != nil {
    fmt.Print(err)
}

输出:

user "bimmler" (id 17) not found