Reputation: 7989
While reading a code, I ran into the following error handling currently implemented in the code:
nodes, err := model.AllNodes() links, err := model.AllLinks() if err != nil { // Do stuff }
I'm curious to know if the above error handling can create unpredictable results. I have this alternative in mind:
nodes, err1 := model.AllNodes() if err1 != nil { // Do stuff } links, err2 := model.AllLinks() if err2 != nil { // Do stuff }
Or maybe this:
nodes, err1 := model.AllNodes() links, err2 := model.AllLinks() if err1 != nil || err2 != nil { // Do stuff }
I'm not sure, please help me to know if the current implemented error handling can cause a bug. Please let me know if there is a better alternative. Thanks.
Upvotes: 3
Views: 424
Reputation: 79764
You are right to be concerned. The first error is not being handled at all, which is probably a bug. If the author intended not to check that error, it would be much more clear to do so explicitly:
nodes, _ := model.AllNodes()
links, err := model.AllLinks()
if err != nil {
// Do stuff
}
Upvotes: 8