Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyesuaikan Pengendalian Ralat dalam Pakej HTTP Go?

Bagaimana untuk Menyesuaikan Pengendalian Ralat dalam Pakej HTTP Go?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 14:48:14735semak imbas

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

Pengendalian Ralat Tersuai dalam Pakej HTTP Standard

Dalam pakej HTTP standard Golang, apabila URL yang salah diakses, lalai "404 page tidak dijumpai" biasanya dipaparkan. Untuk menyesuaikan respons ini dan memberikan pengalaman yang lebih mesra pengguna, anda boleh melaksanakan fungsi pengendalian ralat anda sendiri.

Penyelesaian untuk Pakej HTTP Tulen:

Jika anda menggunakan pakej net/http sahaja, anda boleh mencipta fungsi errorHandler khusus:

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

Kemudian, anda boleh mendaftarkan pengendali tersuai anda dan errorHandler seperti yang ditunjukkan dalam kod yang disediakan:

http.HandleFunc("/", homeHandler)
http.HandleFunc("/smth/", smthHandler)
http.ListenAndServe(":12345", nil)

Penyelesaian untuk Penghala Gorilla/Mux:

Jika anda menggunakan penghala gorila/mux, anda boleh memanfaatkan ciri terbina dalamnya untuk mengendalikan senario yang tidak ditemui:

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

Anda kemudiannya perlu melaksanakan fungsi notFound seperti yang dikehendaki:

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

Pengendalian Ralat Dipertingkat:

Contoh kod yang disediakan menunjukkan pengendalian ralat asas, tetapi anda boleh melanjutkan ini untuk mengendalikan pelbagai ralat HTTP dan lakukan tindakan tambahan, seperti mengelog atau menghantar pemberitahuan.

Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Pengendalian Ralat dalam Pakej HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn