diff --git a/middlewares.go b/middlewares.go index 522cdef..550b36c 100644 --- a/middlewares.go +++ b/middlewares.go @@ -48,3 +48,17 @@ func (e *Engine) RequestIdMiddleware() Middleware { }) } } + +func (e *Engine) RecoverMiddleware() Middleware { + return func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer func() { + if r := recover(); r != nil { + slog.Error("panic", "error", r) + http.Error(w, "Internal Server Error", http.StatusInternalServerError) + } + }() + next.ServeHTTP(w, r) + }) + } +}