Junior — Middle
Kādas sekas būtu jāgaida, ja gorutīnā notiktu panika?
sobes.tech AI
Atbilde no AI
Ja gorutīnā notiek panika (panic), šīs gorutīnas izpilde tiek pārtraukta, un sākas steka izpakošanas process (stack unwinding), kurā tiek izsauktas defer funkcijas.
Ja panika netiek apstrādāta (piemēram, ar recover defer funkcijā), tas novedīs pie visas programmas beigām.
Svarīgi ir saprast, ka panika vienā gorutīnā tieši neietekmē citas gorutīnas — tās turpina darbu, ja vien panika neizraisa visas programmas apturēšanu.
Panikas apstrādes piemērs:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panika noķerta un apstrādāta:", r)
}
}()
panic("kaut kas nogāja greizi")
}()