Heim > Backend-Entwicklung > Golang > Wie kann ich die Fehlerbehandlung im HTTP-Paket von Go anpassen?

Wie kann ich die Fehlerbehandlung im HTTP-Paket von Go anpassen?

Linda Hamilton
Freigeben: 2024-12-22 14:48:14
Original
683 Leute haben es durchsucht

How to Customize Error Handling in Go's HTTP Package?

Benutzerdefinierte Fehlerbehandlung im Standard-HTTP-Paket

Im Standard-HTTP-Paket von Golang wird beim Zugriff auf eine falsche URL eine standardmäßige „404-Seite“ angezeigt Normalerweise wird die Meldung „nicht gefunden“ angezeigt. Um diese Antwort anzupassen und ein benutzerfreundlicheres Erlebnis zu bieten, können Sie Ihre eigene Fehlerbehandlungsfunktion implementieren.

Lösung für reines HTTP-Paket:

Wenn ja Wenn Sie nur das Paket net/http verwenden, können Sie eine dedizierte errorHandler-Funktion erstellen:

func errorHandler(w http.ResponseWriter, r *http.Request, status int) {
    w.WriteHeader(status)
    if status == http.StatusNotFound {
        fmt.Fprint(w, "custom 404")
    }
}
Nach dem Login kopieren

Dann können Sie Ihre benutzerdefinierten Handler und den errorHandler registrieren, wie in gezeigt der bereitgestellte Code:

http.HandleFunc("/", homeHandler)
http.HandleFunc("/smth/", smthHandler)
http.ListenAndServe(":12345", nil)
Nach dem Login kopieren

Lösung für Gorilla/Mux-Router:

Wenn Sie den Gorilla/Mux-Router verwenden, können Sie dessen integrierte Funktion nutzen Funktion zum Behandeln von Nicht-Gefunden-Szenarien:

func main() {
    r := mux.NewRouter()
    r.NotFoundHandler = http.HandlerFunc(notFound)
}
Nach dem Login kopieren

Sie müssen dann die Funktion notFound als implementieren gewünscht:

func notFound(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusNotFound)
    fmt.Fprint(w, "custom 404")
}
Nach dem Login kopieren

Erweiterte Fehlerbehandlung:

Das bereitgestellte Codebeispiel demonstriert die grundlegende Fehlerbehandlung, Sie können diese jedoch erweitern, um verschiedene HTTP-Fehler zu behandeln und zusätzliche Aktionen auszuführen , wie z. B. Protokollierung oder Senden von Benachrichtigungen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Fehlerbehandlung im HTTP-Paket von Go anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage