このエントリは Gopher道場 Advent Calendar 2018 5日目の記事です。 Goではエラーをerror型の値として扱います。errorはビルトインのインタフェース型として次のように定義されています。 type error interface { Error() string } https://golang.org/pkg/builtin/#error Goではインタフェース宣言時に定義したメソッドリストを実装することでインタフェースを実装します。 つまり、任意の型にError() stringをメソッドとして実装すれば、独自のエラー型のerrorとして扱うことが可能になります。 標準パッケージ net のエラー型 例えば標準パッケージのnetでは、OpError, DNSErrorなどの様々な独自のエラー型が定義されています。 これらのエラー型は、エラー情報を格納する