Sobes.tech
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")
}()