errors

package module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2020 License: MIT Imports: 4 Imported by: 0

README

Documentation Build Status CircleCI codecov GolangCI Go Report Card GitHub tag (latest SemVer)

errors

Stdlib errors package extension. go1.13 errors.Is and errors.As are the same functions as in stdlib (not even copies).

// as usual
err = errors.New("msg")

// do not capture caller info
err = errors.NewNoLoc("msg")

// fmt.Sprintf like
err = errors.New("message %v", "args")

// one Frame higher
err = errors.NewDepth(1, "msg")

// the same result as previous
pc := errors.Caller(1)
err = errors.NewLoc(pc, "msg")

// Wrap error
err = errors.Wrap(err, "msg %v", "args")

// all the same function types are available
err = errors.WrapNoLoc(err, "msg")

err = errors.WrapDepth(err, 1, "msg %v", "args")

err = errors.WrapLoc(err, pc, "msg %v", "args")

Caller

Caller frame can be added to error so later you can get to know where error was generated.

f := errors.Caller(1)

f = errors.Funcentry(1)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func As

func As(err error, target interface{}) bool

As finds the first error in err's chain that matches target, and if so, sets target to that error value and returns true.

The chain consists of err itself followed by the sequence of errors obtained by repeatedly calling Unwrap.

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.

As will panic if target is not a non-nil pointer to either a type that implements error, or to any interface type. As returns false if err is nil.

link to stdlib errors.As

func Is

func Is(err, target error) bool

Is reports whether any error in err's chain matches target.

The chain consists of err itself followed by the sequence of errors obtained by repeatedly calling Unwrap.

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.

link to stdlib errors.Is

func New

func New(f string, args ...interface{}) error

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 NewDepth

func NewDepth(d int, f string, args ...interface{}) error

NewDepth returns an error that formats as the given text. Location where error was created (d frames higher) is recorded. Each call to New returns a distinct error value even if the text is identical.

func NewLoc

func NewLoc(pc PC, f string, args ...interface{}) error

NewLoc returns an error with given PC that formats as the given text. Each call to New returns a distinct error value even if the text is identical.

func NewNoLoc added in v0.4.0

func NewNoLoc(f string, args ...interface{}) error

NewNoLoc is like a New but with no caller info.

func Unwrap

func Unwrap(err error) error

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.

func Wrap

func Wrap(err error, f string, args ...interface{}) error

Wrap returns an error that describes given error with given text. Returns nil if err is nil.

func WrapDepth

func WrapDepth(err error, d int, f string, args ...interface{}) error

WrapDepth returns an error that describes given error with given text. Location where error was created (d frames higher) is recorded. Returns nil if err is nil.

func WrapLoc

func WrapLoc(err error, pc PC, f string, args ...interface{}) error

WrapLoc returns an error with given PC that describes given error with given text. Returns nil if err is nil.

func WrapNoLoc added in v0.4.0

func WrapNoLoc(err error, f string, args ...interface{}) error

WrapNoLoc is like Wrap but without caller info.

Types

type PC added in v0.3.0

type PC = loc.PC

PC is a program counter and represents location in a source code.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL