errors

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2020 License: MIT Imports: 5 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")

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

// add Frame info
err = errors.NewHere("msg")

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

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

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

// all the same function types are available
err = errors.WrapHere(err, "msg %v", "args")

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

err = errors.WrapFrame(err, f, "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. Frame 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 NewFrame added in v0.2.0

func NewFrame(frame Frame, f string, args ...interface{}) error

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

func NewHere

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

NewHere returns an error that formats as the given text. Frame where error was created is recorded. Each call to New returns a distinct error value even if the text is identical.

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. Frame where error was created (d frames higher) is recorded. Returns nil if err is nil.

func WrapFrame added in v0.2.0

func WrapFrame(err error, frame Frame, f string, args ...interface{}) error

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

func WrapHere

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

WrapHere returns an error that describes given error with given text. Frame where error was wrapped is recorded. Returns nil if err is nil.

Types

type Frame added in v0.2.0

type Frame = tlog.Frame

Frame represents location in a source code.

func Caller

func Caller(s int) Frame

Caller returns information about the calling goroutine's stack. The argument s is the number of frames to ascend, with 0 identifying the caller of Caller.

func Funcentry

func Funcentry(s int) Frame

Funcentry returns information about the calling goroutine's stack. The argument s is the number of frames to ascend, with 0 identifying the caller of Caller.

Jump to

Keyboard shortcuts

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