考虑以下代码片段:
m := map[string]string{
"name": "Olivia"
}
// marshal map
b, err := json.Marshal(m)
if err != nil {
// handle error
...
}
// no errrors
...
我知道处理Go中的错误非常重要,但是从上面的示例中,我非常确定(至少以我个人的经验)不会发生该错误。我的问题是,在这种情况下是否可以忽略错误?
最佳答案
在上面的具体示例中这可能是安全的,但是仍然忽略错误是而不是是一个好主意。您或其他人将来会更改代码,并且可能不会更新后续的错误处理(或缺少错误处理)。该代码可能会更改为会失败的东西,并且没有标记。
您至少可以做的是记录此类错误,如果将来发生此类错误,则至少会有一些日志/标记。
更好的方法是对不应该发生的错误进行 panic :
m := map[string]string{
"name": "Olivia"
}
// marshal map
b, err := json.Marshal(m)
if err != nil {
panic("never to happen")
}
参见相关:Check errors when calling http.ResponseWriter.Write()
关于go - 上交Go : When to ignore errors?时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62594017/