处理两个连续错误

时间:2018-05-03 13:57:50

标签: go

在阅读代码时,我遇到了代码中当前实现的以下错误处理:

    nodes, err := model.AllNodes()
    links, err := model.AllLinks()
    if err != nil {
        // Do stuff
    }

我很想知道上述错误处理是否会产生不可预测的结果。我有这个选择:

    nodes, err1 := model.AllNodes()
    if err1 != nil {
        // Do stuff
    }
    links, err2 := model.AllLinks()
    if err2 != nil {
        // Do stuff
    }

或许这个:

    nodes, err1 := model.AllNodes()
    links, err2 := model.AllLinks()
    if err1 != nil || err2 != nil {
        // Do stuff
    }

我不确定,请帮助我知道当前实施的错误处理是否会导致错误。如果有更好的选择,请告诉我。感谢。

1 个答案:

答案 0 :(得分:7)

你是对的。根本没有处理第一个错误,可能一个错误。如果作者打算不检查该错误,那么明确地这样做会更加明确:

nodes, _ := model.AllNodes()
links, err := model.AllLinks()
if err != nil {
    // Do stuff
}