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