Q:

Any way to check for un-handled errors in a Go program?

Consider the following:
package main

import (
    "errors"
    "fmt"
)

func foo() error {
    return errors.New("Danger!")
}

func main() {
    foo();
    fmt.Println("I don't have a care in the world!")
}

It would be nice if there was an easy way to see that possible errors from foo() are not being handled. Does Go have a built-in way to check programs/source files for errors that nothing has been done with?

A:

Go does not have a built-in way to do that, but there's a third-party tool by Kamil Kisiel that does. Just go get github.com/kisielk/errcheck then run bin/errcheck your/import/path from your $GOPATH and it will spit out a list of calls with ignored errors. (I just tried it on a project and, hrm, perhaps I'm not as 100% reliable about it as I thought.)
If you like it, you might also like go vet's checks, and the lint package used within Google for style checks.

A:

You can use errcheck:
$ errcheck github.com/your/package

It will let you know when you are ignoring returned errors. I would argue that this should mostly be rare if you are using a decent editor (that shows you function signatures). 

