Skip to content

Repository files navigation

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 interchangably with code that is expecting a normal error return.

Usage

Full documentation is available on godoc, but here's a simple example:

package crashy
import"github.com/go-errors/errors"varCrashed=errors.Errorf("oh dear")
funcCrash() error {
returnerrors.New(Crashed)
}

This can be called as follows:

package main
import (
"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)
}
}
}

Meta-fu

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.

About

errors with stacktraces for go

Resources

Stars

0 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages