2 回答

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊
您不能擴(kuò)展error,它是內(nèi)置接口類型。
您可以通過簡單地添加新方法來擴(kuò)展自己的接口類型。起初這是“危險的”,因為在Go中實現(xiàn)接口是隱式的:沒有意圖的聲明。這意味著,如果您有一個MyError接口,則某些現(xiàn)有類型可能已經(jīng)實現(xiàn)了它并以此為基礎(chǔ)。如果向其添加新方法,則現(xiàn)有類型很可能不再實現(xiàn)它,這很可能破壞現(xiàn)有代碼(除非您添加該新方法的實現(xiàn))。
從所需方法的名稱(Check())來看,最好是創(chuàng)建一個實用程序函數(shù):
func check(err error) {
if err != nil {
panic(err) // Do something
}
}
該“模式”也可以與您自己的接口一起應(yīng)用,不會干擾現(xiàn)有的實現(xiàn)。

TA貢獻(xiàn)1891條經(jīng)驗 獲得超3個贊
我強(qiáng)烈建議使用便裝的if語句進(jìn)行錯誤檢查。
if err != nil {
log.Printf("Error received - [%v]",err)
return err
}
因為golang沒有C#熟悉的try catch塊。
并且如果您的方法Check()將返回bool-您仍然需要根據(jù)if語句對其進(jìn)行檢查。
- 2 回答
- 0 關(guān)注
- 235 瀏覽
添加回答
舉報