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

时间:2014-07-06 01:59:45

标签: 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!")
}

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

2 个答案:

答案 0 :(得分:6)

Go没有内置的方法来做到这一点,但Kamil Kisiel的a third-party tool就是这样做的。只需go get github.com/kisielk/errcheck然后从您的bin/errcheck your/import/path运行$GOPATH,它就会吐出一系列忽略错误的来电。 (我刚刚在一个项目上尝试过,而且,或许我并没有像我想的那样100%可靠。)

如果您喜欢,可能还需要go vet的支票,以及Google中用于样式检查的the lint package

答案 1 :(得分:4)

您可以使用errcheck

$ errcheck github.com/your/package

当您忽略返回的错误时,它会通知您。我认为如果你使用一个像样的编辑器(它显示你的功能签名),这应该是罕见的。