Hacker News new | ask | show | jobs
by kevhito 2856 days ago
My preferred solution for the err handling stutter would be something like "whenever".

func Foo(x int) (int, error) { var err error a, err := whatever() if err != nil { return 0, err } b, err := whatever() if err != nil { return 0, err } ... }

becomes

func Foo(x int) (int, error) { var err error whenever err != nil { return 0, err } a, err := whatever() b, err := whatever() ... }

Essentially, "whenever" just means "insert this line at every point in the remainder of this code block where err is assigned a new value.

It is explicit, simple, easy to understand, and would be identical in function to how most errors are currently handled.

1 comments

Indent your code with 4 spaces to prevent HN from eating the newlines:

    func Foo(x int) (int, error) {
        var err error
        a, err := whatever()
        if err != nil {
            return 0, err
        }
        b, err := whatever()
        if err != nil {
            return 0, err
        }
        ...
    }


    func Foo(x int) (int, error) {
        var err error
        whenever err != nil {
            return 0, err
        }
        a, err := whatever()
        b, err := whatever()
        ...
    }
That's not error handling, that's error noticing. https://www.youtube.com/watch?v=Ph4eYD7Bgek&t=2m35s