Heim >Backend-Entwicklung >Golang >So passen Sie Fehler in Golang an

So passen Sie Fehler in Golang an

尚
Original
2020-01-14 11:51:024558Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn