Обработка двух последовательных ошибок - PullRequest
0 голосов
/ 03 мая 2018

При чтении кода я столкнулся со следующей обработкой ошибок, в настоящее время реализованной в коде:

    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 голосов
/ 03 мая 2018

Вы правы, чтобы быть обеспокоенным. Первая ошибка вообще не обрабатывается, что вероятно ошибка. Если бы автор намеревался не проверять эту ошибку, было бы гораздо яснее сделать это явно:

nodes, _ := model.AllNodes()
links, err := model.AllLinks()
if err != nil {
    // Do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...