1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-14 11:23:09 +02:00
lazygit/vendor/github.com/go-errors/errors
Jesse Duffield d5db02a899 bump gocui to be on 'simple' branch.
The master branch of gocui contains stuff I added for lazynpm which changes how
the cursor is used. This will provide some benefits to lazygit as well but I
don't yet have the motivation to make the required changed in lazygit to support it.

So we're gonna be on the branch named 'simple' rather than master until I fix that up.
2020-05-13 21:24:25 +10:00
..
cover.out switch to Go modules 2019-09-01 21:24:03 +10:00
error.go bump gocui to be on 'simple' branch. 2020-05-13 21:24:25 +10:00
go.mod bump gocui to be on 'simple' branch. 2020-05-13 21:24:25 +10:00
LICENSE.MIT bump dep to include go-errors package 2019-02-11 22:39:17 +11:00
parse_panic.go bump dep to include go-errors package 2019-02-11 22:39:17 +11:00
README.md switch to Go modules 2019-09-01 21:24:03 +10:00
stackframe.go bump gocui to be on 'simple' branch. 2020-05-13 21:24:25 +10:00

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.