在一段 http get 的程序中,如果出现错误,打印日志后会导致程序退出。

        if resp, e := c.Get("https://" + pCfg.ServerAddr + ":" + pCfg.HttpPort + "/port"); e != nil {
                log.Fatal("http.Client.Get: ", e)
        } else {
                ...
        }

将 log.Fatal 修改为 log.Println 即可解决问题。

感觉一个函数做了本不该它做的事情,有些好奇,golang 设计者的设计哲学。