回答

收藏

在 go 中以错误代码退出?

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

退出带有错误代码的程序的惯用方法是什么?
; e, o' }2 w4 v6 N. x文档Exit说程序立即终止;延迟函数不会运行。log.Fatal只是调用Exit. 对于不令人发指的错误,在不运行延迟函数的情况下终止程序似乎是极端的。! M' `7 \( C+ ]0 F/ [' D# [
我是否应该传达一些表明有错误的状态,然后Exit(1)在我知道我可以安全退出的某全退出,所有延迟函数都已经运行?# s- U6 [% t% f0 `
                                                                1 j/ L1 k# K' v/ Y
    解决方案:                                                               
6 B# ?$ M4 P6 o( G! J& I                                                                我大部分都是真的main为了这样做,包里都按照这些方式做了一些事情return err尽快采用协议,并有适当的终止:! q" M# g  i, P& H! s" S8 @$ ^
    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}
    4 i# a# C* Y" u1 X9 C, C& W( a. K
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则