Junior — Middle
Koja je potreba za korišćenjem funkcije recover unutar defer u Go?
sobes.tech АИ
Одговор од АИ
U jeziku Go, funkcija recover se koristi za hvatanje panic i sprečavanje naglog završetka programa. Međutim, recover radi samo ako se pozove unutar odložene funkcije (defer).
Korišćenje recover unutar defer omogućava:
- Sigurno rukovanje panikom, na primer, beleženjem greške ili čišćenjem resursa.
- Nastavak izvršavanja programa nakon panike, ako je to moguće.
Primer:
func safeFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Oporavak od panike:", r)
}
}()
// Kod koji može izazvati panic
panic("nešto je pošlo po zlu")
}
Ako se recover pozove van defer, neće uhvatiti paniku i program će se neočekivano završiti. Zato se recover uvek stavlja unutar defer za ispravno rukovanje izuzetnim situacijama.