退出帶有錯誤代碼的程序的慣用方法是什么?文檔Exit說“程序立即終止;延遲的函數(shù)不會運行?!保琹og.Fatal只是調(diào)用Exit. 對于不是令人發(fā)指的錯誤的事情,在不運行延遲函數(shù)的情況下終止程序似乎是極端的。我是否應(yīng)該傳遞一些指示存在錯誤的狀態(tài),然后Exit(1)在我知道可以安全退出的某個點調(diào)用,并且所有延遲函數(shù)都已運行?
3 回答

慕慕森
TA貢獻(xiàn)1856條經(jīng)驗 獲得超17個贊
我在我的大部分真實main包中都按照這些方式做了一些事情,以便return err盡快采用約定,并有一個適當(dāng)?shù)慕K止:
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
}

www說
TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊
在 python 中,我通常使用轉(zhuǎn)換為 go 的模式如下所示:
func run() int {
// here goes
// the code
return 1
}
func main() {
os.Exit(run())
}
- 3 回答
- 0 關(guān)注
- 298 瀏覽
添加回答
舉報
0/150
提交
取消