You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Package errors adds stacktrace support to errors in go.
This is particularly useful when you want to understand the state of execution
when an error was returned unexpectedly.
It provides the type *Error which implements the standard golang error
interface, so you can use this library interchangeably with code that is
expecting a normal error return.
Usage
Full documentation is available on
godoc, but here's a simple
example:
This package was original written to allow reporting to
Bugsnag from
bugsnag-go, but after I found similar
packages by Facebook and Dropbox, it was moved to one canonical location so
everyone can benefit.
This package is licensed under the MIT license, see LICENSE.MIT for details.
Changelog
v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is
v1.2.0 added errors.As from the standard library.
v1.3.0 BREAKING updated error methods to return error instead of *Error.
Code that needs access to the underlying *Error can use the new errors.AsError(e)
// before
errors.New(err).ErrorStack()
// after
. errors.AsError(errors.Wrap(err)).ErrorStack()
v1.4.0 BREAKING v1.4.0 reverted all changes from v1.3.0 and is identical to v1.2.0
v1.4.1 no code change, but now without an unnecessary cover.out file.
v1.4.2 performance improvement to ErrorStack() to avoid unnecessary work #40
v1.5.0 add errors.Join() and errors.Unwrap() copying the stdlib #40
v1.5.1 fix build on go1.13..go1.19 (broken by adding Join and Unwrap with wrong build constraints)