Heim >Backend-Entwicklung >Golang >Wie erfasse ich bestimmte Fehler in Go?

Wie erfasse ich bestimmte Fehler in Go?

DDD
DDDOriginal
2024-11-06 18:32:031019Durchsuche

How do I Capture Specific Errors in Go?

Erfassen spezifischer Fehler in Go

Bei der Interaktion mit Standardfunktionen der Go-Bibliothek, die Fehler zurückgeben, kann es hilfreich sein, bestimmte Typen zu identifizieren und zu behandeln von Fehlern wie „Verbindung verloren“ oder „Verbindung abgelehnt“. So erreichen Sie dies:

Fehler.Is und Fehler.As verwenden

Für moderne Go-Versionen besteht der empfohlene Ansatz darin, die Fehler.Is und Fehler zu verwenden. Als Funktionen aus der Standardbibliothek. Mit diesen Funktionen können Sie überprüfen, ob ein Fehler einem bestimmten Typ entspricht, oder eine Teilmenge der Fehlerinformationen extrahieren. Zum Beispiel:

if errors.Is(err, syscall.ECONNREFUSED) {
    // err is a connection refused error
}

Übereinstimmende Fehlerzeichenfolgen

Wenn eine Standardbibliotheksfunktion keine bestimmten Fehlertypen bereitstellt, können Sie auf den Vergleich der Fehlerzeichenfolge zurückgreifen:

if err.Error() == "connection lost" {
    // err contains "connection lost" error
}

Überprüfen spezifischer Fehlertypen

Einige Bibliotheken exportieren möglicherweise bestimmte Fehlertypen, die direkt überprüft werden können:

if _, ok := err.(net.Error); ok {
    // err is a net.Error instance
}

Alle ermitteln Mögliche Fehler

Um alle möglichen Fehler zu identifizieren, die von einer Standardbibliotheksfunktion zurückgegeben werden, muss der Quellcode gelesen werden. Alternativ können Sie auch die Dokumentation einsehen, etwa das Godoc für das Net-Paket, wo häufig Fehler beschrieben werden.

Das obige ist der detaillierte Inhalt vonWie erfasse ich bestimmte Fehler in Go?. 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