Skip to content

Instantly share code, notes, and snippets.

@jnschaeffer
Created January 24, 2015 21:25
Show Gist options
  • Select an option

  • Save jnschaeffer/0703585e881e4ca46d85 to your computer and use it in GitHub Desktop.

Select an option

Save jnschaeffer/0703585e881e4ca46d85 to your computer and use it in GitHub Desktop.

Revisions

  1. jnschaeffer created this gist Jan 24, 2015.
    33 changes: 33 additions & 0 deletions err-consumer.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    package main

    import (
    "fmt"
    "log"
    "strconv"
    )

    type errConsumer struct {
    err error
    }

    func (e *errConsumer) Consume(err error) {
    if e.err == nil && err != nil {
    e.err = err
    }
    }

    func main() {
    var e errConsumer

    a, err := strconv.Atoi("123")
    e.Consume(err)
    b, err := strconv.Atoi("234a")
    e.Consume(err)
    c, err := strconv.Atoi("345")
    e.Consume(err)

    if e.err != nil {
    log.Fatal(e.err)
    }
    fmt.Println("Hello, playground", a, b, c)
    }