This page links to resources about error handling in Go.

## Getting Started

- Read [Effective Go: Errors](https://golang.org/doc/effective_go.html#errors)
- Code [A Tour of Go: Errors](http://tour.golang.org/methods/8) and do the [exercise](http://tour.golang.org/methods/9)
- Study [The Go Programming Language Specification: Errors](http://golang.org/ref/spec#Errors)
- Study [Package errors](http://golang.org/pkg/errors/)
- Study [func fmt.Errorf](https://golang.org/pkg/fmt/#Errorf)

## Standard Practice

- Read [Why does Go not have exceptions?](http://golang.org/doc/faq#exceptions)
- Read [Error handling and Go](http://blog.golang.org/error-handling-and-go)
- Read [Go by Example: Errors](https://gobyexample.com/errors)
- Read [Errors are values](http://blog.golang.org/errors-are-values)
- Read [golang/go/wiki: Errors](Errors)

## Advanced Topics

- Read [Why is my nil error value not equal to nil?](http://golang.org/doc/faq#nil_error)
- Read [Defer, Panic, and Recover](http://blog.golang.org/defer-panic-and-recover)