Ich bin neu in Golang, meine Anwendung muss mehrere Fehler in einer Schleife zurückgeben, muss später kombiniert werden und als einzelne Fehlerzeichenfolge zurückgegeben werden. Ich bin nicht in der Lage, die Zeichenfolgenfunktionen zu verwenden, um die Fehlermeldungen zu kombinieren. Mit welchen Methoden können diese Fehler vor der Rückgabe zu einem einzigen Fehler zusammengefasst werden?
%Vor%String-Funktionen funktionieren nicht bei Fehlern, weil der Fehler wirklich eine Schnittstelle ist, die die Funktion Error () string implementiert.
Sie können String-Funktionen für err1.Error () und err2.Error () verwenden aber nicht auf der Referenz "err1" selbst.
Einige Fehler sind Strukturen, wie sie von Datenbanktreibern erhalten werden.
Es gibt also keine natürliche Möglichkeit, String-Funktionen für Fehler zu verwenden, da sie unter Umständen gar keine Strings sind.
Wie zwei Fehler zu kombinieren:
Einfach, benutze einfach fmt.Errorf erneut.
%Vor%Alternativ:
%Vor% Um zu erweitern, was @WillC in einem Kommentar erwähnt hat, ist es möglich, einen eigenen error
-Typ zu definieren, da error
ein Schnittstellentyp ist. Jeder Typ, der eine Funktion Error() string
implementiert, implementiert die Schnittstelle error
. Daher könnten Sie eine CollectionError
erstellen, die Fehler aggregiert und eine verkettete Fehlerzeichenfolge zurückgibt.
Dies stellt eine Auflistungsfunktion bereit, die ein bestimmtes error
an ein Segment anhängt. Beim Aufruf von Error() string
iteriert es über das Segment und erstellt eine verkettete Fehlerzeichenfolge.
Es gibt einen tollen golang.org Blogbeitrag , der Fehler genauer analysiert. Ein vollständiges Beispiel des Beispiels ist auf The Go Playground verfügbar.
Die Leute könnten an Ссылка interessiert sein, das sich selbst als "A Go (golang)" -Paket zur Darstellung einer Fehlerliste bezeichnet als ein einziger Fehler. ".
Tags und Links error-handling go