退出带有错误代码的程序的惯用方法是什么?
Exit
的文档中说:"程序立即终止;延迟函数不运行.",log.Fatal
就叫Exit
.对于那些不是令人发指的错误,在不运行延迟函数的情况下终止程序似乎是极端的.
我是否应该传递一些指示出现错误的状态,然后在我知道可以安全退出的某个点调用Exit(1)
,并且所有延迟函数都已运行?
退出带有错误代码的程序的惯用方法是什么?
Exit
的文档中说:"程序立即终止;延迟函数不运行.",log.Fatal
就叫Exit
.对于那些不是令人发指的错误,在不运行延迟函数的情况下终止程序似乎是极端的.
我是否应该传递一些指示出现错误的状态,然后在我知道可以安全退出的某个点调用Exit(1)
,并且所有延迟函数都已运行?
我在我真正的main
个方案中的大多数都是按照这些思路做的,以便return err
公约尽快获得通过,并有一个适当的终止:
func main() {
if err := run(); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(1)
}
}
func run() error {
err := something()
if err != nil {
return err
}
// etc
}