gpt4 book ai didi

go - 我应该对响应正文进行错误检查 Close() 吗?

转载 作者:IT老高 更新时间:2023-10-28 13:06:20 25 4
gpt4 key购买 nike

net/http 的文档有以下例子:

resp, err := http.Get("http://example.com/")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
fmt.Printf("%s", body)

Close返回一个 error,但它没有被检查。我在这里缺少什么吗?在 go 中经常强调检查每个错误的重要性,但我经常看到这种 defer resp.Body.Close() 模式没有错误检查。

最佳答案

有两件事需要考虑:如果你检查它并且出现错误,你会怎么处理它?而且,如果出现错误会有什么副作用?

在大多数情况下,对于关闭响应正文,这两个问题的答案都是......绝对没有。如果发生错误时您什么都不做,并且错误没有明显影响,则没有理由检查它。

还要注意 Close() 会返回一个错误以实现 io.Closer 接口(interface);该函数不一定返回错误。您需要检查源以确定它是否有错误案例。

关于go - 我应该对响应正文进行错误检查 Close() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47293975/

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