Что делать, если дочерняя горутина паникует?

Ответ

В корне горутины вызвать defer recover() и обработать: залогировать, отправить ошибку в канал или в errgroup. Иначе непойманная паника завершит программу. Не восстанавливать панику "молча" - хотя бы логировать.

go func() {
    defer func() { if r := recover(); r != nil { errCh <- fmt.Errorf("panic: %v", r) } }()
    doWork()
}()
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.