panic の理解
CoddyのGOジャーニー「論理とフロー」セクションの一部 — レッスン 42/68。
Goでは、panicは、プログラムが回復不能なエラーに遭遇し、直ちに停止しなければならないような、真に例外的な状況で使用される組み込み関数です。適切に処理する通常のエラーとは異なり、panicは、プログラムのロジックや環境に根本的な問題があることを示す致命的な失敗のために予約されています。
panic が呼び出されると、現在の関数の通常の実行を即座に停止し、コールスタックのアンワインド(巻き戻し)を開始します。これは、呼び出し側のコードで処理可能なエラーを返すという、Goの典型的なアプローチとは大きく異なります。
慣用的なGoでは、panicはめったに使用されません。Goコミュニティは、パニックベースのエラーハンドリングよりも、戻り値による明示的なエラーハンドリングを強く推奨しています。配列の範囲外へのアクセス、nilポインタのデリファレンス、またはライブラリがプログラミング上のバグを示す不可能な状態を検出した場合などに、panicに遭遇することがあります。
ほとんどのGoプログラムは、これまで学んできた標準のerrorインターフェースを使用して、エラーを適切に処理する必要があります。panicは、プログラムの実行を継続するための合理的な方法が本当に存在しない場合にのみ検討されるべきです。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
7エラーハンドリング詳説
カスタムエラー型%w によるエラーのラッピングerrors.Is によるアンラップerrors.As によるアンラップpanic の理解recover の使用まとめ:安全な除算