Geen omschrijving

Titouan 7c023725d0 Merge pull request #28 from tankyouoss/master 5 jaren geleden
.travis.yml 7da7452d47 Add go 1.13,1.14 to travis 5 jaren geleden
LICENSE.MIT a25f26c222 Import library from bugsnag-go 11 jaren geleden
README.md 4ac07ff6b5 <feature>(IS): Use original errors.Is as final test for Is function 5 jaren geleden
cover.out a25f26c222 Import library from bugsnag-go 11 jaren geleden
error.go 31b0a5b4a4 <fix>(Backward comp): Add build tags to make errors backward compatible 5 jaren geleden
error_1_13.go 31b0a5b4a4 <fix>(Backward comp): Add build tags to make errors backward compatible 5 jaren geleden
error_1_13_test.go 31b0a5b4a4 <fix>(Backward comp): Add build tags to make errors backward compatible 5 jaren geleden
error_backward.go 7da7452d47 Add go 1.13,1.14 to travis 5 jaren geleden
error_test.go 31b0a5b4a4 <fix>(Backward comp): Add build tags to make errors backward compatible 5 jaren geleden
go.mod f104a1a5b4 Go modules opt-in 5 jaren geleden
parse_panic.go a25f26c222 Import library from bugsnag-go 11 jaren geleden
parse_panic_test.go a25f26c222 Import library from bugsnag-go 11 jaren geleden
stackframe.go 331a2a9283 optimize SourceLine 5 jaren geleden

README.md

go-errors/errors

Build Status

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.

Changelog

  • v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is