Using the pkg/errors package and wrapping errors
The errors
package located at github.com/pkg/errors
is a drop in replacement for the standard Go errors
package. In addition, it provides some very useful functionality for wrapping and handling errors. The typed and declared errors in the preceding recipe are a good example--they can be useful to add additional information to an error, but wrapping it in the standard way will change its type and break type assertion:
// this wont work if you wrapped it // in a standard way. i.e. // fmt.Errorf("custom error: %s", err.Error()) if err == Package.ErrorNamed{ //handle this error in a specific way }
This recipe will demonstrate how to use the pkg/errors
package to add annotation to errors throughout your code.
Getting ready
Configure your environment according to these steps:
- Refer to the Getting ready section of the Handling errors and the Error interface recipe in this chapter.
- Run the
go get github.com/pkg/errors/
command.
How to do it...
These steps...