Kombinieren Sie mehrere Fehlerzeichenfolgen

7

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%     
Greg Petr 02.11.2015, 04:12
quelle

4 Antworten

6

Sie könnten die Funktion strings.Join() und append() verwenden, um dieses Segment zu erreichen.

Beispiel: golang playgorund

%Vor%

Dies würde eine einzelne Zeichenfolge ausgeben, die Sie an den Client zurücksenden können.

%Vor%

hoffe das hilft!

    
askb 04.11.2015, 05:20
quelle
9

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%     
David Budworth 02.11.2015 05:01
quelle
3

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.

%Vor%

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.

%Vor%

Es gibt einen tollen golang.org Blogbeitrag , der Fehler genauer analysiert. Ein vollständiges Beispiel des Beispiels ist auf The Go Playground verfügbar.

    
Ben Campbell 02.11.2015 21:12
quelle
2

Die Leute könnten an Ссылка interessiert sein, das sich selbst als "A Go (golang)" -Paket zur Darstellung einer Fehlerliste bezeichnet als ein einziger Fehler. ".

    
Mark Lawrence 03.09.2017 17:51
quelle

Tags und Links