Errors are values - The Go Programming Language
Idioms and patterns for handling errors in Go.