回答

收藏

在 go 中以错误代码退出?

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

退出带有错误代码的程序的惯用方法是什么?
8 {! }" L  V- p# |% l# ~6 N文档Exit说程序立即终止;延迟函数不会运行。log.Fatal只是调用Exit. 对于不令人发指的错误,在不运行延迟函数的情况下终止程序似乎是极端的。/ |8 L! j. q! K$ O# c' P
我是否应该传达一些表明有错误的状态,然后Exit(1)在我知道我可以安全退出的某全退出,所有延迟函数都已经运行?
* w+ L/ t8 {& L* |2 l                                                                % a- O- U! g5 \( N# Z
    解决方案:                                                               
. m4 T4 |; Z1 a- W  H6 ?( {  d, e                                                                我大部分都是真的main为了这样做,包里都按照这些方式做了一些事情return err尽快采用协议,并有适当的终止:/ \4 c. j$ z, m5 G
    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}# c# Z5 L5 X; ]3 y
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则