我有一個用Go編寫的服務,使用包。net/httphttp.HandleFunc("/hello", Hello)log.Fatal(http.ListenAndServe(":8080", nil))目前為止,一切都好。在 里面,代碼存根如下:func Hellofunc Hello(w http.ResponseWriter, r *http.Request) { c, err := r.Cookie("token") if err != nil { if err == http.ErrNoCookie { // If the cookie is not set, return an unauthorized status w.WriteHeader(http.StatusUnauthorized) log.WithFields(log.Fields{ "fnc": "Hello", }).Fatal(err) return //exit status 1 < Server stops here. } w.WriteHeader(http.StatusBadRequest) log.WithFields(log.Fields{ "fnc": "Hello", }).Fatal(err) return }問題是當代碼流到達請求中找不到cookie的地方時,程序/服務器在返回語句之后存在,控制臺顯示,并且在客戶端收到錯誤 ErrNoCookie exit status 1 Error: read ECONNRESET但是,作為一項服務,我希望它繼續運行并響應后續請求。我做錯了什么?
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
你稱之為:
log.WithFields(log.Fields{
"fnc": "Hello",
}).Fatal(err)
就在回來之前。實際上以代碼 1 退出。https://godoc.org/github.com/sirupsen/logrus#FatalFatal
嘗試刪除對 的所有調用。Fatal
- 1 回答
- 0 關注
- 120 瀏覽
添加回答
舉報
0/150
提交
取消