Middle
Šta će se desiti ako pokrenete gorutinu i u njoj pozovete panic? Da li će se gorutina zaustaviti ili će se zaustaviti cela aplikacija?
sobes.tech АИ
Одговор од АИ
Ако у горутини дође до panic, та горатина ће се зауставити, али цео апликација у целини се неће аутоматски затворити. Паника у горутини не доводи до заустављања свих горутина или програма, осим ако не достигне коренски ниво и остане необрађена.
Да бисте избегли неочекивано затварање апликације, можете користити recover унутар исте горутина или у функцији која је позива, како бисте ухватили и обрадили паник.
Пример:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Ухваћена паника у горутини:", r)
}
}()
panic("нешто је пошло по злу")
}()
У овом примеру, паника неће довести до заустављања целе апликације, већ ће бити обрађена унутар горутина.