Dev Study
Go コース

42. error 型 — errors.New と fmt.Errorf

Go では、関数の失敗を例外ではなく戻り値で表します。その戻り値の型が組み込みインターフェース error です。error は Error() string という一つのメソッドだけを持つインターフェースで、エラーメッセージを文字列で返せる値なら何でも error として扱えます。成功時は nil、失敗時は中身のあるエラー値を返すのが約束です。

新しいエラー値を作る手軽な方法が二つあります。errors.New("メッセージ") は固定のメッセージを持つエラーを返します。fmt.Errorf("...%d...", x) は書式付きで動的なメッセージを組み立てられ、状況に応じた説明を埋め込めます。呼び出し側は if err != nil { ... } で失敗を判定し、その場で処理するか上位へ返します。

この「失敗を値として返し、呼び出し側が明示的に確認する」スタイルが Go のエラー処理の核です。例外のように暗黙に飛んでいかないため、エラー処理の流れがコードに見える形で残ります。次のレッスンでは、エラーに文脈を足しながら上位へ伝える「ラップ」を学びます。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Go
公式ドキュメントで詳しく ↗