十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在go里定義錯誤異常的方式有這么兩種,但都需要你的返回值是error類型的。

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、電商網(wǎng)站制作開發(fā)、成都小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
func Control() error {
//xxxx
}第一種方式是使用golang標(biāo)準(zhǔn)庫包errors 來定義錯誤。使用方法很是簡單,只需要 return errors.New(“string”) 。 這樣就是一個最簡單的錯誤返回。
第二種方式是借用struct結(jié)構(gòu)體,創(chuàng)建一個struct的Error()方法,注意這個方法名是Error,不然會出現(xiàn)下面的Bug, 找不到Error方法。
./er.go:25: cannot use equalError literal (type equalError) as type error in return argument:
equalError does not implement error (missing Error method)下面是一個比較完整的Error的使用方法。不僅有errors,還有struct Error()方式.
#http://xiaorui.cc
package main
import (
"errors"
"fmt"
)
type equalError struct {
Num int
}
//方法名字是Error()
func (e equalError) Error() string {
return fmt.Sprintf("你現(xiàn)在是數(shù)字是 %d ,還是超了55", e.Num)
}
func Equal(n int) (int, error) {
if n > 55 {
return -1, errors.New("超過了55") //生成一個簡單的 error 類型
}
return n, nil
}
func DiyEqual(n int) (int, error) {
if n > 55 {
return -1, equalError{Num: n} // 會調(diào)用equalError的Error方法
}
return n, nil
}
func main() {
//使用errors.New生成error對象
if result, err := Equal(100); err != nil {
fmt.Println("錯誤:", err)
} else {
fmt.Println("結(jié)果:", result)
}
//不適用erros,自定義錯誤方式.
if result, err := DiyEqual(100); err != nil {
fmt.Println("錯誤:", err)
} else {
fmt.Println("結(jié)果:", result)
}
}以上就是golang怎么自定義錯誤的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!