Junior — Middle
Koje posledice treba očekivati ako dođe do panike u gorutini?
sobes.tech АИ
Одговор од АИ
Ако dođe do panike (panic) u gorutini, izvršavanje te gorutine se prekida, a započinje proces odmotavanja steka (stack unwinding), tokom kojeg se pozivaju odložene funkcije (defer).
Ako panika nije obrađena (na primer, pomoću recover u odloženoj funkciji), to će dovesti do završetka celog programa.
Važno je razumeti da panika u jednoj gorutini ne utiče direktno na druge gorutine — one nastavljaju da rade, osim ako panika ne dovede do zaustavljanja celog programa.
Primer obrade panike:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Uhvaćena i obrađena panika:", r)
}
}()
panic("nešto je pošlo po zlu")
}()