Junior — Middle
Jaké důsledky lze očekávat, pokud dojde k panice v gorutině?
sobes.tech AI
Odpověď od AI
Pokud dojde k panice (panic) v gorutině, její provádění je přerušeno a začíná proces odstraňování zásobníku (stack unwinding), během něhož jsou volány odložené funkce (defer).
Pokud panika není zachycena (například pomocí recover v odložené funkci), povede to k ukončení celého programu.
Je důležité pochopit, že panika v jedné gorutíně přímo neovlivňuje ostatní gorutiny — ty pokračují v práci, pokud panika nezpůsobí zastavení celého programu.
Příklad zpracování paniky:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panika zachycena a zpracována:", r)
}
}()
panic("něco se pokazilo")
}()