Go-Sprache bietet keine Try...Catch-Ausnahmebehandlungsmethode wie die Java- und C#-Sprache, sondern wirft sie Schicht für Schicht über den Funktionsrückgabewert aus.
Die vom Go-Standardpaket bereitgestellte Fehlerbehandlungsfunktion:
error ist eine Schnittstelle:
type error interface { Error() string }
So erstellen Sie einen Fehler:
// example 1 func Sqrt(f float64) (float64, error) { if f < 0 { return 0, errors.New("math: square root of negative number") } // implementation } // example 2 if f < 0 { return 0, fmt.Errorf("math: square root of negative number %g", f) }
So passen Sie an Fehler:
// errorString is a trivial implementation of error. type errorString struct { s string } func (e *errorString) Error() string { return e.s }
Es gibt im Allgemeinen drei Fehlerbehandlungsstrategien in der Go-Sprache:
1. Fehlerwerte zurückgeben und überprüfen: Erfolg und verschiedene Fehler werden durch spezifische Werte und die obere Ebene dargestellt Der Code überprüft den Fehlerwert, um den Ausführungsstatus der Funktion zu bestimmen.
2 Benutzerdefinierte Fehlertypen: Benutzerdefinierte Fehlertypen werden durch benutzerdefinierte Fehlertypen dargestellt, und der Code der oberen Ebene bestimmt die Art des Fehlers durch Typ Behauptungen
3. Interne Details ausblenden Fehlerbehandlung: Angenommen, der übergeordnete Code kennt keine Details des von der aufgerufenen Funktion zurückgegebenen Fehlers und gibt den Fehler direkt nach oben zurück Die
Fehlerschnittstelle ist für Menschen sichtbar, nicht für die Maschine. Normalerweise drucken wir die von der Error-Methode zurückgegebene Zeichenfolge im Protokoll aus oder zeigen sie auf der Konsole an. Bestimmen Sie niemals, wie ein Fehler behandelt werden soll, indem Sie feststellen, ob die von der Error-Methode zurückgegebene Zeichenfolge eine bestimmte Zeichenfolge enthält.
Weitere Golang-Kenntnisse finden Sie in der Spalte Golang-Tutorial.
Das obige ist der detaillierte Inhalt vonGolang-Fehlerauslösungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!