Closed2
【Go】エラーについて
エラー定義
Goにおける error は以下のようにインターフェースとして定義されている。
type error interface {
Error() string
}
つまり、Error メソッドがある構造体は等しくエラーとして扱われることを意味する。
この性質を利用すれば、独自エラーを定義する際に Error メソッドを持たせれば error インターフェースとしてまとめて扱うことができる。
独自エラー
Error メソッドを独自エラーの構造体に含めれば、error
インターフェースとしてまとめて扱うことができるのは前述したとおりだ。
そもそもなぜ独自エラーを定義するのか。それは以下のようなメリットがあるためである。
-
追加の情報を含められる
独自エラーにすることでエラーメッセージに加えて、追加の情報(エラーが発生したIDや関連するオブジェクト)を持たせることができるため、より精緻なエラーハンドリングやデバッグが可能になる -
エラーチェックが可能になる
errors.Is
やerrors.As
といった関数で特定のエラー型をチェックすることが可能
このスクラップは22日前にクローズされました