Junior — Middle
Какви последици трябва да се очакват, ако възникне паника в горутината?
sobes.tech AI
Отговор от AI
Ако в горутината възникне паника (panic), изпълнението на тази горутина се прекъсва и започва процесът на разпаковане на стека (stack unwinding), по време на който се извикват отложените функции (defer).
Ако паниката не бъде обработена (например, с recover в отложена функция), това ще доведе до завършването на цялата програма.
Важно е да разберете, че паника в една горутина не влияе директно на други горутини — те продължават да работят, освен ако паниката не доведе до спиране на цялата програма.
Пример за обработка на паника:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Засечена и обработена паника:", r)
}
}()
panic("нещо се обърка")
}()