Sin descripción

Gabriel Falkenberg 7d9bdff2da Improve stack comparisons to make tests succeed. hace 8 años
LICENSE.MIT a25f26c222 Import library from bugsnag-go hace 11 años
README.md 01d535a7e0 Fix readme hace 11 años
cover.out a25f26c222 Import library from bugsnag-go hace 11 años
error.go 3afebba5a4 Merge pull request #15 from gabrielf/wrapprefix-shouldnt-mutate-original-error hace 8 años
error_test.go 7d9bdff2da Improve stack comparisons to make tests succeed. hace 8 años
parse_panic.go a25f26c222 Import library from bugsnag-go hace 11 años
parse_panic_test.go a25f26c222 Import library from bugsnag-go hace 11 años
stackframe.go a25f26c222 Import library from bugsnag-go hace 11 años

README.md

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"

var Crashed = errors.Errorf("oh dear")

func Crash() error {
    return errors.New(Crashed)
}

This can be called as follows:

package main

import (
    "crashy"
    "fmt"
    "github.com/go-errors/errors"
)

func main() {
    err := crashy.Crash()
    if err != nil {
        if errors.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.