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

go

Solution

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.

Problem

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?

Original source