Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Handling two consecutive errors

Tags:

go

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.

like image 227
user3405291 Avatar asked Apr 08 '26 02:04

user3405291


1 Answers

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
}
like image 198
Flimzy Avatar answered Apr 11 '26 00:04

Flimzy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!