Sobes.tech
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("нешто је пошло по злу")
}()

У овом примеру, паника неће довести до заустављања целе апликације, већ ће бити обрађена унутар горутина.