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