Go 不支持 try-catch,相反,用于錯誤處理的 Go 編碼風(fēng)格是在潛在的有效值旁邊返回一個錯誤。如果錯誤與error接口的實現(xiàn)一致,錯誤將被設(shè)置,否則將被設(shè)置為nil.查看流動的簽名:func Open(name string) (file *File, err error)我想知道這個“錯誤處理”模式的名稱是什么。
1 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊
我認(rèn)為您正在尋找的是文獻(xiàn)中的狀態(tài)回歸。Golang 只是通過考慮將錯誤(或故障狀態(tài))定義為程序中遇到的不需要和不尋常的情況來實現(xiàn)它。
與此同時,早在2003 年(Golang 推出前六年),Ned Batchelder就 Exceptions 與 Status Returns 的好處(在本例中專注于 C++)指出了一些更清晰的代碼的好處,Joel Spolsky 也表達(dá)了他的觀點,但是在這種情況下,支持 status' return 反對 Exceptions。
在創(chuàng)建 Go 之后,在 2014 年,Martin Fowler 還寫了關(guān)于以通知的形式返回錯誤而不是拋出異常。
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消