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