package main
import (
"fmt""log""net/http")
func handle() http.HandlerFunc {
returnfunc(w http.ResponseWriter, r *http.Request) {
panic("i am panic")
}
}
func handlePanic(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)
}
}
func main() {
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.