Goでhttp.ListenAndServe()
を使用している場合、アプリケーションを強制終了することができない場合があります。これは私のdefer
文の処理をスキップしているようです。以下のコードをご覧ください。私はアプリケーションを殺すと、dbは閉じられません。 defer
文を実行するにはどうすればよいですか?http.ListenAndServeと組み合わせてdeferを使用するには?
func main() {
db := NewDB(DBFILENAME)
defer db.Close()
http.HandleFunc("/", handler)
http.ListenAndServe(":80", nil)
}
ListenAndServeブロック。 'defer'は、関数が戻るときにのみ実行されます。 – JimB
JimB、あなたは同じ問題を説明していると思いますが、換言すれば。 – Bazzz