Junior — Middle
Da li znate šta su izuzeci (Exception) u jeziku Go?
sobes.tech АИ
Одговор од АИ
U jeziku Go ne postoje tradicionalne izuzetke (Exception) kao u Javi ili Pythonu. Umesto toga, Go koristi povratne vrednosti za rukovanje greškama: funkcija vraća vrednost greške (error), koju je potrebno proveriti.
Međutim, u Go postoji mehanizam panike (panic) i oporavka (recover), koji se može smatrati analogom izuzetaka, ali je namenjen za kritične greške i ne bi trebalo da se koristi za običan rad sa greškama.
Primer obrade greške u Go:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("deljenje nulom")
}
return a / b, nil
}
rezultat, err := divide(10, 0)
if err != nil {
fmt.Println("Greška:", err)
} else {
fmt.Println("Rezultat:", rezultat)
}
Korišćenje panic/recover:
func mayPanic() {
panic("nešto je pošlo po zlu")
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Vraćeno nakon panike:", r)
}
}()
mayPanic()
fmt.Println("Ovaj kod se neće izvršiti")
}