Heim > Artikel > Backend-Entwicklung > So passen Sie Fehler in Golang an
Es gibt zwei Möglichkeiten, Fehlerausnahmen in go zu definieren, aber beide erfordern, dass Ihr Rückgabewert vom Typ Fehler ist.
func Control() error { //xxxx }
Die erste Möglichkeit besteht darin, die Fehler des Golang-Standardbibliothekspakets zu verwenden, um Fehler zu definieren. Die Verwendung ist sehr einfach, es wird einfach „errors.New(“string“) zurückgegeben. Dies ist die einfachste Fehlerrückgabe.
Die zweite Möglichkeit besteht darin, die Strukturstruktur auszuleihen und eine Error()-Methode der Struktur zu erstellen. Beachten Sie, dass der Methodenname Error lautet, da sonst der folgende Fehler auftritt und die Error-Methode nicht gefunden werden kann.
./er.go:25: cannot use equalError literal (type equalError) as type error in return argument: equalError does not implement error (missing Error method)
Das Folgende ist eine relativ vollständige Methode zur Verwendung von Error. Nicht nur Fehler, sondern auch die Methode struct Error().
#http://xiaorui.cc package main import ( "errors" "fmt" ) type equalError struct { Num int } //方法名字是Error() func (e equalError) Error() string { return fmt.Sprintf("你现在是数字是 %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} // 会调用equalError的Error方法 } return n, nil } func main() { //使用errors.New生成error对象 if result, err := Equal(100); err != nil { fmt.Println("错误:", err) } else { fmt.Println("结果:", result) } //不适用erros,自定义错误方式. if result, err := DiyEqual(100); err != nil { fmt.Println("错误:", err) } else { fmt.Println("结果:", result) } }
Verwandte Empfehlungen: Golang-Tutorial
Das obige ist der detaillierte Inhalt vonSo passen Sie Fehler in Golang an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!