Sobes.tech
Junior — Middle

Viete, čo sú výnimky (Exception) v jazyku Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go neexistujú tradičné výnimky (Exception) ako v Jave alebo Pythone. Namiesto toho Go používa návratové hodnoty na spracovanie chýb: funkcia vracia hodnotu chyby (error), ktorú je potrebné skontrolovať.

Avšak v Go existuje mechanizmus paniky (panic) a zotavenia (recover), ktorý možno považovať za ekvivalent k výnimkám, ale je určený pre kritické chyby a nemal by sa používať na bežné spracovanie chýb.

Príklad spracovania chyby v Go:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("delenie nulou")
    }
    return a / b, nil
}

výsledok, err := divide(10, 0)
if err != nil {
    fmt.Println("Chyba:", err)
} else {
    fmt.Println("Výsledok:", výsledok)
}

Použitie panic/recover:

func mayPanic() {
    panic("niečo sa pokazilo")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Obnovené po panike:", r)
        }
    }()
    mayPanic()
    fmt.Println("Tento kód sa nevykoná")
}