Sobes.tech
Junior — Middle

Aké následky by sa mali očakávať, ak dôjde k panike v gorutine?

sobes.tech AI

Odpoveď od AI

Ak dôjde k panike (panic) v gorutine, jej vykonanie sa preruší a začne proces rozbaľovania zásobníka (stack unwinding), počas ktorého sa volajú odložené funkcie (defer).

Ak panika nie je zachytená (napríklad pomocou recover v odloženej funkcii), povedie to k ukončeniu celého programu.

Je dôležité pochopiť, že panika v jednej gorutine neovplyvňuje priamo ostatné gorutiny — tie pokračujú v práci, pokiaľ panika nezastaví celý program.

Príklad spracovania paniky:

func() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Zachytená a spracovaná panika:", r)
        }
    }()
    panic("niečo sa pokazilo")
}()