Что такое panic и recover?

Middle
1.1k просмотров
AFK Offer AI

Panic — это аварийная остановка, когда продолжать выполнение бессмысленно: обращение к nil, выход за границы слайса. Раскручивает стек, вызывая все defer-ы по пути. Recover можно вызвать внутри defer — он перехватывает панику и возвращает её значение. Используй panic только для действительно неожиданных ситуаций, а не для обычных ошибок. Типичный паттерн — recover в middleware HTTP сервера, чтобы один крашнутый хендлер не уронил весь процесс.

Следующий вопрос

Как работает method receiver — pointer vs value?