- Notifications
You must be signed in to change notification settings - Fork93
errors with stacktraces for go
License
go-errors/errors
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Package errors adds stacktrace support to errors in go.
This is particularly useful when you want to understand the state of executionwhen an error was returned unexpectedly.
It provides the type *Error which implements the standard golang errorinterface, so you can use this library interchangeably with code that isexpecting a normal error return.
Full documentation is available ongodoc, but here's a simpleexample:
package crashyimport"github.com/go-errors/errors"varCrashed=errors.Errorf("oh dear")funcCrash()error {returnerrors.New(Crashed)}
This can be called as follows:
package mainimport ("crashy""fmt""github.com/go-errors/errors")funcmain() {err:=crashy.Crash()iferr!=nil {iferrors.Is(err,crashy.Crashed) {fmt.Println(err.(*errors.Error).ErrorStack()) }else {panic(err) } }}
This package was original written to allow reporting toBugsnag frombugsnag-go, but after I found similarpackages by Facebook and Dropbox, it was moved to one canonical location soeveryone can benefit.
This package is licensed under the MIT license, see LICENSE.MIT for details.
- 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.0BREAKING 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.0BREAKING 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)
About
errors with stacktraces for go
Resources
License
Uh oh!
There was an error while loading.Please reload this page.