Что произойдёт со всей программой, если panic возникнет в HTTP-обработчике?

Стандартный сервер net/http перехватывает panic из ServeHTTP: процесс обычно продолжает работать, но текущий запрос прерывается. Panic в отдельно запущенной горутине этим recover не защищён.

Короткий ответ

Что ответить на собеседовании

Стандартный сервер net/http перехватывает panic из ServeHTTP: процесс обычно продолжает работать, но текущий запрос прерывается. Panic в отдельно запущенной горутине этим recover не защищён.

Подробный разбор

Ответ с пояснениями

Условие

Что произойдёт со всей программой, если panic возникнет в HTTP-обработчике?

Ответ

Стандартный сервер net/http перехватывает panic из ServeHTTP: процесс обычно продолжает работать, но текущий запрос прерывается. Panic в отдельно запущенной горутине этим recover не защищён.

Сервер записывает стек и закрывает соединение либо сбрасывает HTTP/2-поток. Это не гарантированный HTTP 500: для контролируемого ответа нужен recovery middleware, пока заголовки ещё не отправлены. Неперехваченный panic в дочерней горутине может завершить весь процесс; восстановление действует только внутри той же горутины.

Источник: go.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее