Sobes.tech
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")
}()