Package errorz provides functions for dealing with errors, with stacktrace, validation, and multi-errors.
go get -u ezpkg.io/[email protected]
data := errorz.Must(os.ReadFile(path))
fmt.Printf("%s", data)
errorz.MustZ(os.WriteFile(path, data, 0644))
err := fmt.Errorf("foo")
zErr := errorz.Wrapf(err, "bar/%v", "one")
fmt.Printf("%v\n", zErr)
// bar/one: foo
fmt.Printf("%+v\n", zErr)
// bar/one: foo
// ezpkg.io/errorz_test.TestError.func1
// /Users/i/ws/ezpkg/ezpkg/errorz/errorz_test.go:12
// testing.tRunner
// /usr/local/go/src/testing/testing.go:7890
fmt.Printf("%#v\n", zErr)
// bar/one: foo
// ezpkg.io/errorz_test/errorz_test.go:12 · TestError.func1
// testing/testing.go:7890 · tRunner
zErr := errorz.NoStack().New("no stack")
fmt.Printf("%+v", zErr)
var err error
errorz.AppendTo(&err, fmt.Errorf("foo"))
errorz.AppendTo(&err, nil)
fmt.Printf("%+v", err)
var err2 error
err2 = errorz.Append(err2, err)
fmt.Printf("%+v", err2)
- github.com/pkg/errors
- github.com/hashicorp/go-multierror
- github.com/uber-go/multierr
- tailscale.com/util/multierr
- sigs.k8s.io/cli-utils/pkg/multierror
As I work on various Go projects, I often find myself creating utility functions, extending existing packages, or developing packages to solve specific problems. Moving from one project to another, I usually have to copy or rewrite these solutions. So I created this repository to have all these utilities and packages in one place. Hopefully, you'll find them useful as well.
For more information, see the main repository.