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
Lepaskan: 2024-12-22 14:48:14
asal
734 orang telah melayarinya

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")
    }
}
Salin selepas log masuk

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)
Salin selepas log masuk

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)
}
Salin selepas log masuk

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")
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan