Вопрос: Как реализовать recover-middleware, чтобы сервер не падал на panic?

Go Middle Без компании
Вопрос: Как реализовать recover-middleware, чтобы сервер не падал на panic?
Ответы
```go func recoverMW(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { defer func() { if rec := recover(); rec != nil { log.Println("panic:", rec) http.Error(w, "internal error", http.StatusInternalServerError) } }() next.ServeHTTP(w, r) }) } ``` **Как это работает:** panic в handler иначе может положить весь процесс. Middleware перехватывает и возвращает 500.