goのエラーコードで終了?
2023-10-09 15:17:45
質問
あるエラーコードでプログラムを終了させる慣用的な方法は何ですか?
のドキュメントでは
Exit
には、"プログラムは直ちに終了し、遅延した関数は実行されません。
log.Fatal
を呼び出すだけです。
Exit
. 極悪なエラーでないものについては、遅延関数を実行せずにプログラムを終了させることは極端に思えます。
私は、エラーがあったことを示すいくつかの状態を渡して、それから
Exit(1)
を呼び出し、遅延した関数がすべて実行され、安全に終了できることを知ることができるのでしょうか?
どのように解決するのですか?
私は、実際のところ、次のようなことを行っています。
main
パッケージの
return err
の規約ができるだけ早く採用され、適切な終了を持つようにします。
func main() {
if err := run(); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(1)
}
}
func run() error {
err := something()
if err != nil {
return err
}
// etc
}
関連
-
[解決済み] Golang で exec.Command を実行したときの "exit status 1" エラーをデバッグする方法
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?
-
[解決済み] PHPで有用なエラーメッセージを得るにはどうしたらよいですか?
-
[解決済み] Bash関数におけるreturnとexitの違いについて
-
[解決済み] Pythonのexit()とsys.exit()の違いについて
-
[解決済み] Bashでパイプ出力と終了ステータスをキャプチャする
-
[解決済み] PHPはエラーログをどこに保存するのですか?(PHP 5, Apache, FastCGI, および cPanel)
-
[解決済み] Golang プログラムが呼び出したエラーの行番号を表示させるには?
-
[解決済み] Go で log を使わずに Stderr に出力するにはどうしたらいいですか?
-
[解決済み] iOS9 storyboard 未処理のアクション(handleNonLaunchSpecificActions)とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ベリログ・ノンネット値割り当て
-
[解決済み] Golang で exec.Command を実行したときの "exit status 1" エラーをデバッグする方法
-
[解決済み] VB6でVarTypeが返すvbErrorとは何ですか?
-
[解決済み] PHPはエラーログをどこに保存するのですか?(PHP 5, Apache, FastCGI, および cPanel)
-
[解決済み] PHPのエラー処理: die() vs trigger_error() vs throw Exception
-
[解決済み] Golang プログラムが呼び出したエラーの行番号を表示させるには?
-
[解決済み] Go で log を使わずに Stderr に出力するにはどうしたらいいですか?
-
[解決済み] iOS9 storyboard 未処理のアクション(handleNonLaunchSpecificActions)とは?