Heim >Backend-Entwicklung >Golang >Wie kann ich benutzerdefinierte Fehlertypen in Go ordnungsgemäß behandeln?

Wie kann ich benutzerdefinierte Fehlertypen in Go ordnungsgemäß behandeln?

DDD
DDDOriginal
2024-12-27 14:36:11897Durchsuche

How Can I Gracefully Handle Custom Error Types in Go?

Umgang mit benutzerdefinierten Fehlertypen in Go

Bei der Verwendung benutzerdefinierter Fehlertypen in Go treten Schwierigkeiten auf. Nachdem Sie auf einen Blog-Beitrag zu Fehlern verwiesen haben, versuchen Sie, einen benutzerdefinierten Fehlertyp „ModelMissingError“ zu definieren, stoßen jedoch bei der Überprüfung seines Typs auf einen Fehler.

Um dieses Problem zu beheben, müssen Sie das „Komma ok“-Idiom verwenden:

serr, ok := err.(*model.ModelMissingError)

Mit dieser Redewendung können Sie den Typ eines Schnittstellenwerts bestimmen und den zugrunde liegenden konkreten Wert ermitteln. In diesem Fall wird die Fehlervariable err getestet, um zu sehen, ob sie einen konkreten Typ von *model.ModelMissingError enthält.

Wenn die Behauptung erfolgreich ist, wird ok auf true gesetzt und serr wird das zugrunde liegende *model enthalten .ModelMissingError-Wert. Anschließend können Sie diesen Wert verwenden, um basierend auf dem benutzerdefinierten Fehler entsprechende Maßnahmen zu ergreifen.

Sie können Ihren Code beispielsweise wie folgt ändern:

if ok && serr.msg == "no model found for id" {
    // Handle error gracefully
}

Das obige ist der detaillierte Inhalt vonWie kann ich benutzerdefinierte Fehlertypen in Go ordnungsgemäß behandeln?. 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