Heim >Backend-Entwicklung >Golang >Wie kann ich Fehler in Go im Gegensatz zu GetMessage() von Java effektiv vergleichen und behandeln?
Vergleichen von Fehlermeldungen in Go
In Java können Sie GetMessage() verwenden, um die Fehlermeldung aus einer Ausnahme abzurufen. In Go ist jedoch keine entsprechende Methode für den Fehlertyp definiert. Stattdessen müssen benutzerdefinierte Fehlerbehandlungstechniken eingesetzt werden.
Benutzerdefinierte Fehlerbehandlung
Ein Ansatz besteht darin, eine Variable auf Paketebene zu definieren, um die spezifische Fehlermeldung darzustellen, die Sie möchten prüfen. Zum Beispiel:
var errExample = errors.New("this is an example")
Wenn Sie Fehler zurückgeben, können Sie diese Variable anstelle einer generischen Fehlerzeichenfolge verwenden:
if err := some_package.DoSomething(); err != nil { if err == errExample { // handle it however. } }
Exportieren der Fehlervariablen
Wenn Code außerhalb des Pakets auf den Fehler zugreifen muss, können Sie die Variable mit einem Großbuchstaben exportieren:
var ErrExample = errors.New("this is an example")
Dies ermöglicht Sie können den Fehler mit der exportierten Variablen vergleichen:
if err == somepackage.ErrExample { // handle it }
Beispiele
Falle: String-Vergleich vermeiden
Widerstehen Sie der Versuchung, einen Vergleich mit der Zeichenfolge durchzuführen, die von der Error()-Methode des Fehlers zurückgegeben wird. Dies kann zu brüchigem Code führen. Zum Beispiel:
if err.Error() == "this is an example" { // this is not recommended }
Verwenden Sie stattdessen den oben beschriebenen benutzerdefinierten Fehlerbehandlungsansatz.
Das obige ist der detaillierte Inhalt vonWie kann ich Fehler in Go im Gegensatz zu GetMessage() von Java effektiv vergleichen und behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!