Что не так: go fmt.Println(recover())?

Middle
125 просмотров
AFK Offer AI

recover() вернёт nil. recover работает только при вызове напрямую из deferred функции. Вызов в горутине, вложенной функции или обычном коде — всегда nil. Правильно: defer func() { if r := recover(); r != nil { fmt.Println(r) } }(). Также recover не ловит panic в другой горутине — каждая горутина должна иметь свой recovery.

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

Что такое GitHub Container Registry?