go-errors

Yet another errors package, implementing error handling primitives with error wrapping and error tracing.
Installation
The recommended way to install go-errors is:
go get -u gopkg.in/src-d/go-errors.v1
Examples
The Kind type allows you to create new errors containing the stack trace and also check if an error is of a particular kind.
var ErrExample = errors.NewKind("example")
err := ErrExample.New()
if ErrExample.Is(err) {
fmt.Printf("%+v\n", err)
}
// Example Output:
// example
//
// gopkg.in/src-d/errors%2v0_test.ExampleError_Format
// /home/mcuadros/workspace/go/src/gopkg.in/src-d/errors.v0/example_test.go:60
// testing.runExample
// /usr/lib/go/src/testing/example.go:114
// testing.RunExamples
// /usr/lib/go/src/testing/example.go:38
// testing.(*M).Run
// /usr/lib/go/src/testing/testing.go:744
// main.main
// github.com/pkg/errors/_test/_testmain.go:106
// runtime.main
// /usr/lib/go/src/runtime/proc.go:183
// runtime.goexit
// /usr/lib/go/src/runtime/asm_amd64.s:2086Error with format
var ErrMaxLimitReached = errors.NewKind("max. limit reached: %d")
err := ErrMaxLimitReached.New(42)
if ErrMaxLimitReached.Is(err) {
fmt.Println(err)
}
// Output: max. limit reached: 42Error wrapping
var ErrNetworking = errors.NewKind("network error")
err := ErrNetworking.Wrap(io.EOF)
if ErrNetworking.Is(err) {
fmt.Println(err)
}
// Output: network error: EOFYou can find these examples and many more in the examples file.
License
Apache License 2.0, see LICENSE

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
