Heim >Backend-Entwicklung >Golang >Wie vergleichen Go-Entwickler Fehlermeldungen ohne die Methode „GetMessage()'?
Vergleichen von Fehlermeldungen in Go
Bei der Behandlung von Fehlern in Java verlassen sich Entwickler häufig auf die Methode Exception.GetMessage(), um Fehlerbeschreibungen zu extrahieren . Golang verfügt jedoch über keine integrierte Methode zum Abrufen solcher Nachrichten.
Um dieses Problem zu beheben, verwenden Go-Entwickler einen benutzerdefinierten Ansatz zum Vergleichen von Fehlermeldungen. Anstatt Nachrichten im Fehlerobjekt zu speichern, erstellen sie Fehlervariablen auf Paketebene, die bestimmte Fehlercodes oder Beschreibungen kapseln:
var errExample = errors.New("this is an example")
Bei der Rückgabe von Fehlern weisen Entwickler diese Variablen zu, um den spezifischen Typ des aufgetretenen Fehlers anzugeben . Das folgende Snippet demonstriert diesen Ansatz:
if some_err := some_package.DoSomething(); some_err != nil { if some_err == errExample { // handle it } }
In diesem Fall prüft die if-Anweisung, ob der von DoSomething() zurückgegebene Fehler mit der Variablen errExample identisch ist. Wenn ja, wird der Fehler entsprechend behandelt.
Um die Reichweite dieser Fehlervariablen zu erweitern, können Entwickler sie mit dem Export-Schlüsselwort aus dem Paket exportieren:
var ErrExample = errors.New("this is an example")
Dies ermöglicht Code in unterschiedlichen Pakete zum Vergleich mit der exportierten Fehlervariablen:
if err == somepackage.ErrExample { // handle it }
Mit diesem Ansatz können Entwickler Fehlermeldungen in Golang effektiv vergleichen, auch wenn der Sprache ein dediziertes GetMessage() fehlt Methode.
Zusätzliche Überlegungen:
Es ist wichtig, den Vergleich von Fehlermeldungen mit der von der Methode error.Error() zurückgegebenen Zeichenfolge zu vermeiden. Dies kann den Code spröde machen, da sich Fehlermeldungen im Laufe der Zeit ändern können. Stattdessen wird empfohlen, die etablierten Fehlervariablen zu verwenden, um eine konsistente Fehlerbehandlung sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie vergleichen Go-Entwickler Fehlermeldungen ohne die Methode „GetMessage()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!