まず、「実際にどのように使用するか」という質問がある場合は常に、Goソースコード(または実際には十分に大きなGoコードベース)とパッケージドキュメントで回答を検索することをお勧めします。
さて、os.Exit
とpanic
はかなり異なっています。panic
プログラムまたはその一部が回復不能な状態に達したときに使用されます。
ときにpanic
、このような範囲外のスライスをインデックスや型アサーションの失敗など、実行時エラーのために暗黙的に含む、と呼ばれ、それはすぐに現在の関数の実行を停止し、道に沿って任意の繰延機能を実行し、ゴルーチンのスタックをアンワインド開始します。その巻き戻しがゴルーチンのスタックの最上部に到達すると、プログラムは終了します。
os.Exit
すぐにプログラムを中止する必要がある場合に使用します。回復や遅延クリーンアップステートメントの実行の可能性はなく、エラーコードも返します(他のプログラムが発生したことを報告するために使用できます)。これはテストで役立ちます。この1つのテストが失敗した後、もう1つのテストも失敗することがすでにわかっている場合は、ここで終了することもできます。これは、プログラムが実行する必要があるすべてのことを行ったときにも使用でき、ヘルプメッセージを出力した後で終了する必要があります。
ほとんどの場合は使用せずpanic
(error
代わりに返す必要があります)、os.Exit
テストやプログラムの迅速な終了のために、一部のケース以外ではほとんど必要ありません。
panic
は、エラーで終了するために使用されています。これは、それが良い、または慣用的な実践であるという意味ではありません!。これは、サンプルコードの単なるスペース節約デバイスです。非常に特殊な状況のpanic
ためのIRL予約。