Junior — Middle
Објасните механизам интеракције функција panic, defer и recover у језику програмирања Go.
sobes.tech АИ
Одговор од АИ
U Go jeziku, funkcije panic, defer i recover povezane su sa obradom grešaka i izuzetnih situacija.
panic— izaziva nagli završetak trenutne funkcije i pokreće proces "panike", koji se širi kroz stek poziva i poziva odloženedeferfunkcije.defer— odlaže izvršenje funkcije do izlaska iz trenutne funkcije, omogućavajući čišćenje ili obradu nakonpanic.recover— omogućava "hvatanje" panike unutar odložene funkcije i sprečava kraj programa.
Primer:
func primer() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Vraćeno iz panic:", r)
}
}()
fmt.Println("Pre panic")
panic("nešto je pošlo po zlu")
fmt.Println("Ovo se neće izvršiti")
}
Ovde, panic izaziva grešku, defer sa recover je hvata, i program nastavlja sa radom bez pada.