エラーハンドリングの構文サポートについて

エラーハンドリングの構文サポートについて

著者: Robert Griesemer
公開日: 2025年6月3日
原文: https://go.dev/blog/error-syntax

Goの最も古く、最も継続的な不満の一つは、エラーハンドリングの冗長性に関するものです。私たちは皆、このコードパターンを親しく(痛いほど親しく)知っています:

x, err := call()
if err != nil {
        // handle err
}

if err != nilのテストは非常に普遍的で、残りのコードを圧倒することがあります。これは通常、多くのAPI呼び出しを行い、エラー処理が初歩的で単に返すだけのプログラムで起こります。

長年にわたり、Goチームはコミュニティからの入力と共に、この問題の解決策を見つけようと試みてきました。しかし、多くの提案と議論を経て、Goチームは最終的に重要な決定を下しました:今後、エラーハンドリングの構文的言語変更を追求することを停止するということです。

この記事では、この決定に至った経緯、過去の提案、そして現在の状況について詳しく説明します。

目次

  1. 導入部:エラーハンドリングの問題
  2. 歴史的な提案:check/handleとtry
  3. 最近の提案:?操作子
  4. 現状維持の議論
  5. 変更支持の議論
  6. 最終的な決定

ライセンス

本記事は Go公式ブログ の記事を翻訳したものです(© The Go Authors)。原文は CC BY 4.0 の下で公開されています。