gpt4 book ai didi

go - net/http Serve 方法何时返回错误?

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:55 26 4
gpt4 key购买 nike

给定以下函数:

func main() {
l := createListener(8080)
r := ksws.CreateRouter()

if err := http.Serve(l, r); err != nil {
fmt.Println("An error occured.")
}
}

我想知道为什么我应该捕获从“http.Serve”方法返回的“错误”?似乎这里永远不会返回错误。

但是,根据文档https://golang.org/pkg/net/http/#Serve Serve 方法总是返回一个非空错误。

有人可以为此提供一些指导吗?

最佳答案

简单情况:当端口 8080 已被使用时,您将遇到错误:

listen tcp :8080: bind: address already in use

另一种情况:http.Serve 调用 srv.trackListener 如果 go 没有设法添加监听器,它也可能会失败。

此外:http.Serve 调用 l.Accept() 也可能失败...
所以有很多可能的情况...

go 也习惯于检查任何函数返回的所有错误。

PS:冗余错误检查比静默不工作的程序(恕我直言)要好得多...

关于go - net/http Serve 方法何时返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55741359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com