Junior — Middle
Milliseid tagajärgi tuleks oodata, kui gorutinas tekib paanika?
sobes.tech AI
Vastus AI-lt
Kui gorutinas tekib panic (panic), siis selle gorutina täitmine katkeb ning algab stack unwinding protsess, mille käigus kutsutakse defer-iga märgitud funktsioonid.
Kui panic ei ole käsitsetud (näiteks recover abil defer-s), viib see kogu programmi lõpetamiseni.
Oluline on mõista, et ühe gorutina panic ei mõjuta otseselt teisi gorutinasid — need jätkavad tööd, välja arvatud juhul, kui panic põhjustab kogu programmi peatamise.
Panikahaldusnäide:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panik tabatud ja käsitsetud:", r)
}
}()
panic("midagi läks valesti")
}()