gpt4 book ai didi

go - 我应该将 log.Panic() 还是 log.Fatal() 与 os.Open 一起使用?

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

当我们有:

f, err := os.Open("no-file.txt")
if err != nil {
log.Panic(err)
}
defer f.Close()

我认为使用 log.Panic(err) 更有意义。正确的?Panic() 允许延迟 f.Close() 执行但 log.Fatal() 阻止它。

或者文件没有​​找到就不会打开?我想在那种情况下,我们使用 Fatal 还是 Panic 是无关紧要的。对吧?

最佳答案

log.Fatal()应该很少在生产应用程序中使用——如果有的话——因为它会终止整个应用程序。 log.Panic()执行日志后出现 panic ,这也是很少需要的。

许多示例使用它们(或者单个 panic(err) 调用)来缩短示例代码(让您专注于示例的内容),但应谨慎使用它们在生产应用程序中。而是“正确”处理错误。这意味着特定于用例,您可以选择记录它并返回,或者返回一个新错误或做其他事情,但只用它做一件事(只处理一次)。参见 Writing good Golang code .

关于go - 我应该将 log.Panic() 还是 log.Fatal() 与 os.Open 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58010284/

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