回答

收藏

在 go 中以错误代码退出?

技术问答 技术问答 383 人阅读 | 0 人回复 | 2023-09-12

退出带有错误代码的程序的惯用方法是什么?3 K5 n/ |9 y5 J+ v2 d
文档Exit说程序立即终止;延迟函数不会运行。log.Fatal只是调用Exit. 对于不令人发指的错误,在不运行延迟函数的情况下终止程序似乎是极端的。
& e6 f. O: j! e! E3 t2 _* a我是否应该传达一些表明有错误的状态,然后Exit(1)在我知道我可以安全退出的某全退出,所有延迟函数都已经运行?
* c# [5 I# m( E; A                                                                6 J$ x# P  \6 `' n  |: _
    解决方案:                                                                + \! P& t8 @3 z4 ?
                                                                我大部分都是真的main为了这样做,包里都按照这些方式做了一些事情return err尽快采用协议,并有适当的终止:, ]( t& s: h9 U( n: S  |# ?
    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}% u3 _, r' s3 N& G: r/ r& D
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则