Das Anreichern Ihrer Go-Anwendungen mit benutzerdefinierten Fehlertypen verbessert die Fehlerbehandlung, aber die Bearbeitung dieser benutzerdefinierten Typen kann eine Herausforderung sein. Lassen Sie uns tiefer in die Frage der Überprüfung des Typs eines benutzerdefinierten Fehlers eintauchen.
Betrachten Sie den folgenden benutzerdefinierten Fehlertyp:
type ModelMissingError struct { msg string // description of error } func (e *ModelMissingError) Error() string { return e.msg }
Innerhalb einer Methode haben wir kann einen benutzerdefinierten Fehler auslösen:
return Model{}, &ModelMissingError{"no model found for id"}
Um festzustellen, ob ein Fehler spezifisch ist Benutzerdefinierter Typ, wir müssen seinen Typ überprüfen. Allerdings schlägt der Ansatz if err == model.ModelMissingError fehl.
Go stellt das Comma Ok Idiom zur Prüfung auf Typzusicherung bereit:
serr, ok := err.(*model.ModelMissingError)
Diese Anweisung bestätigt, dass die Fehlervariable err den Typ model.ModelMissingError enthält und weist den zu Der zugrunde liegende Wert der Variablen serr. Wenn err nicht den erwarteten Typ enthält, gibt die Anweisung nil für serr und false für ok zurück.
Durch die Verwendung der Komma-OK-Sprache können wir den Typ eines benutzerdefinierten Fehlers effizient überprüfen und ihn entsprechend behandeln.
Das obige ist der detaillierte Inhalt vonWie kann ich den Typ eines benutzerdefinierten Fehlers in Go überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!