日本語版
最新ニュース
世界

実際のサービスでの Go エラー処理

目標は「エラーを増やす」ことではありません。謎は少なくなります。エラーはコンテキストを伝え、明確に分類され、インシデント中に実際に使用できるログを生成します。Enterを押すかクリックして画像をフルサイズで表示しますGo サービスはどこでもエラーを返すため、私は以前、Go サービスは「適切なエラー処理」を行っていると考えていました。それから私は、すべてのインシデントが同じように始まるオンコールローテーションに参加しました。ユーザーがタイムアウトになりました。ダッシュボードには p99 の急上昇が表示されました。ログには次のように書かれていました。 failed。「製品サービスへの連絡に失敗した」わけではありません。「行のスキャンに失敗しました」ではありません。「DBの待機中にコンテキストの期限を超えた」ではありません。ただ… failed。技術的には正しい。運用的には役に立たない。この記事では、Go エラー処理の実際のサービス ガイドについて説明します。どうやって 包む エラーが発生したためコンテキストを維持いつ使用するか センチネルエラー 対タイプどうやって 分類する エラー (タイムアウト、見つからない、不正なリクエスト)何をするか ログ (そしてログに記録しないもの)ので、インシデントの解決が迅速化されます #実際のサービスでの #エラー処理

実際のサービスでの Go エラー処理

1768432821
2026-01-14 22:49:00

目標は「エラーを増やす」ことではありません。謎は少なくなります。エラーはコンテキストを伝え、明確に分類され、インシデント中に実際に使用できるログを生成します。

Enterを押すかクリックして画像をフルサイズで表示します

Go サービスはどこでもエラーを返すため、私は以前、Go サービスは「適切なエラー処理」を行っていると考えていました。

それから私は、すべてのインシデントが同じように始まるオンコールローテーションに参加しました。

  • ユーザーがタイムアウトになりました。
  • ダッシュボードには p99 の急上昇が表示されました。
  • ログには次のように書かれていました。 failed

「製品サービスへの連絡に失敗した」わけではありません。
「行のスキャンに失敗しました」ではありません。
「DBの待機中にコンテキストの期限を超えた」ではありません。
ただ… failed

技術的には正しい。運用的には役に立たない。

この記事では、Go エラー処理の実際のサービス ガイドについて説明します。

  • どうやって 包む エラーが発生したためコンテキストを維持
  • いつ使用するか センチネルエラー 対タイプ
  • どうやって 分類する エラー (タイムアウト、見つからない、不正なリクエスト)
  • 何をするか ログ (そしてログに記録しないもの)ので、インシデントの解決が迅速化されます

#実際のサービスでの #エラー処理

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。