English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go hat kein wie Java try / catchartige Ausnahme-Mechanismen, wir können in Go keine Ausnahmen werfen.
Go verwendet ein anderes Mechanismus, das alsVerzögerte Panik und Wiederherstellungsmechanismus.
Go behandelt einfache Fehler durch das Zurückgeben eines Fehlerobjekts. Das Fehlerobjekt kann das einzige oder der letzte Rückgabewert sein. Wenn es im Funktionsaufruf keinen Fehler gibt, ist das Fehlerobjekt nil.
Wir sollten immer die Fehler in der Anrufklausel überprüfen, egal ob ein Fehler auftritt oder nicht.
Wir sollten niemals Fehler ignorieren, da sie zum Absturz des Programms führen können.
Die Methode zur Fehlererkennung und -berichterstattung in der Go-Sprache ist
Funktionen, die Fehler verursachen können, geben zwei Variablen zurück: einen Wert und einen Fehlercode, wenn erfolgreich,则为nil; wenn Fehlerbedingungen,则为== nil.
Überprüfen Sie nach der Funktion Aufruf auf Fehler. Wenn ein Fehler auftritt (if error != nil), stoppen Sie die Ausführung der tatsächlichen Funktion (oder den gesamten Programm, wenn erforderlich).
Go hat vorgegebene Fehlerinterface-Typen
type error interface { Error() string }
Wir können den Fehlerpaket mit error.New definieren, um einen Fehler Typ zu spezifizieren und eine angemessene Fehlermeldung bereitzustellen, z.B.:
err := errors.New("math - 负数的平方根")
package main import "errors" import "fmt" import "math" func Sqrt(value float64) (float64, error) { if (value < 0) { return 0, errors.New("Math: 负数的平方根") } return math.Sqrt(value), nil } func main() { result, err := Sqrt(-64) if err != nil { fmt.Println(err) } else { fmt.Println(result) } result, err = Sqrt(64) if err != nil { fmt.Println(err) } else { fmt.Println(result) } }
Ausgabe:
Math: Quadratwurzel von negativen Zahlen 8