如何避免 Golang 服务器(Gin Gonic)在 INTERNAL_ERROR 上崩溃

首先:我是 Go 新手,我来自 Java 开发多年。


我使用 Gin Gonic 开发了一个小的 REST API。我的一个端点偶尔(所以我不能按需复制)在 HTTP Get 到我不管理的外部 API 期间崩溃。显示的错误类似于:


流错误:流 ID 4;内部错误


代码崩溃的摘录:


client := &http.Client{}

req, err := http.NewRequest("GET", apiUrl, nil)

if err != nil{

    log.Fatal(err)

    return result, err

}

resp, err := client.Do(req)

if err != nil {

    log.Fatal(err)

    return result, err

}

defer resp.Body.Close()

这会使我的服务器崩溃并停止它。


我不明白发生了什么,我正在处理代码中的所有错误,因此与 java 相比,它看起来像是一个未捕获的异常,但我不知道如何捕获该错误并保持我的服务器运行(我不知道)不在乎避免错误本身,我只希望我的服务器继续运行)。


温温酱
浏览 216回答 2
2回答

慕雪6442864

gin-gonic您可以使用中间件来帮助您的应用程序从gin.Recover()恐慌中恢复。gin.New()您可以通过或通过gin.Default()(它已经包括在内)使用实例化handlers := gin.New() handlers.Use(gin.Recovery())

一只甜甜圈

log.Fatal 退出(愚弄我,感谢 Volker)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go