有没有办法检查Go程序中的未处理错误?

Eva*_*van 3 go

考虑以下:

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!")
}
Run Code Online (Sandbox Code Playgroud)

如果有一种简单的方法可以看到foo()的可能错误没有得到处理,那就太好了.Go是否有内置的方法来检查程序/源文件是否有任何错误?

two*_*two 6

Go没有内置的方法来做到这一点,但Kamil Kisiel 有一个第三方工具.只需go get github.com/kisielk/errcheck再运行bin/errcheck your/import/path从你的$GOPATH,它会吐出而忽略错误的通话清单.(我只是在一个项目上尝试过,而且,hrm,也许我并不像我想的那样100%可靠.)

如果你喜欢它,你可能也喜欢去兽医检查,以及谷歌用于样式检查的棉绒包.

  • 实际上,bin/errcheck永远不应该在$ GOROOT之下.它应该在$ GOPATH之下. (2认同)