package main
import (
"fmt""log""net/http")
funchandle() http.HandlerFunc {
returnfunc(w http.ResponseWriter, r *http.Request) {
panic("i am panic")
}
}
funchandlePanic(next http.HandlerFunc) http.HandlerFunc {
returnfunc(w http.ResponseWriter, r *http.Request) {
deferfunc() {
if i :=recover(); i !=nil {
log.Printf("panic at %s: %v", r.URL.Path, i)
w.WriteHeader(http.StatusInternalServerError)
fmt.Fprint(w, http.StatusText(http.StatusInternalServerError))
}
}()
next(w, r)
}
}
funcmain() {
http.ListenAndServe(":8000", handlePanic(handle()))
}
···
Suka Konten Ini?
Bentuk dukungan apapun saya hargai! Dukung saya melalui Bitcoin, Ko-fi, Trakteer, atau lanjut baca konten saya yang lainnya. Kamu bisa menulis respon lewat Webmention dan beritahu saya URLnya lewat Telegraph.