April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
エラーハンドリングは、関数やメソッドを呼び出し、エラーが発生した場合に呼び出し元のプログラムがエラーをどのように処理するかを判断することです。多くの場合、以下のような方針が考えられます。
呼び出し元に関数の引数などの情報を付与してエラーを返す
ログを出力して処理を継続する
リトライを実施する
リソースをクローズする
適切にエラーハンドリングを実施することで、堅牢で運用しやすいアプリケーションを実装することにつながります。例外的なフローを正しくハンドリングできておらず、後に続いたフローで意図しないエラーが発生して、原因究明に難儀した経験を持つ読者もいるでしょう。特にエラーハンドリングではエラーの考慮もれがあると大変です。本来エラーを捕捉すべきところを、うっかり考慮がもれていて、プログラムが終了してしまう、あるいは nilにアクセスしてしまってパニックが発生しアプリケーションが異常終了してしまう、そのようなプログラムでは安定して運用できません。抜けもれなくきっちりエラーをハンドリングすることを心がけましょう。
すでに説明したようにGoは、エラーが返却され得る関数やメソッドを呼び出した場合、戻り値としてエラーを返却する文化です。

エラーを返却する代わりに panic を発生させていたら、それはあまり良くないプログラムです。panic を捕捉する組み込み関数に recover がありますが、場当たり的に recover を使わずに、正しくエラーハンドリングしましょう。 ...
Read now
Unlock full access