Closed2

【Go】エラーについて

ShionShion

エラー定義

Goにおける error は以下のようにインターフェースとして定義されている。

type error interface {
	Error() string
}

つまり、Error メソッドがある構造体は等しくエラーとして扱われることを意味する。

この性質を利用すれば、独自エラーを定義する際に Error メソッドを持たせれば error インターフェースとしてまとめて扱うことができる

ShionShion

独自エラー

Error メソッドを独自エラーの構造体に含めれば、error インターフェースとしてまとめて扱うことができるのは前述したとおりだ。

そもそもなぜ独自エラーを定義するのか。それは以下のようなメリットがあるためである。

  • 追加の情報を含められる
    独自エラーにすることでエラーメッセージに加えて、追加の情報(エラーが発生したIDや関連するオブジェクト)を持たせることができるため、より精緻なエラーハンドリングやデバッグが可能になる
  • エラーチェックが可能になる
    errors.Iserrors.As といった関数で特定のエラー型をチェックすることが可能
このスクラップは22日前にクローズされました