go - 上交Go : When to ignore errors?时出错

标签 go

考虑以下代码片段:

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/

相关文章:

linux - 为什么我已经设置了它,但仍然说没有 GOPATH?

multithreading - 我可以一次对所有 slice 项目执行操作吗?

go - 拥有多模块 golang 存储库是否有意义,这样人们就不必仅仅因为它的类型而导入我的库

arrays - 无法写入文件

go - 将状态存储在golang二进制文件中

java - 在 Go 中启动 Java 进程

python - 这个 HTTP 请求有效吗?

flutter - 如何将 Flutter iso8601 DateTime 解码为 Go Api RFC3339 pgtype.Date 和 pgtype.Timestamptz