Sobes.tech
Junior — Middle

Víte, co jsou výjimky (Exception) v jazyce Go?

sobes.tech AI

Odpověď od AI

V jazyce Go neexistují tradiční výjimky (Exception) jako v Javě nebo Pythonu. Místo toho Go používá návratové hodnoty k ošetření chyb: funkce vrací hodnotu chyby (error), kterou je třeba zkontrolovat.

Nicméně v Go existuje mechanismus paniky (panic) a zotavení (recover), který lze považovat za analogi k výjimkám, ale je určen pro kritické chyby a neměl by být používán pro běžné zpracování chyb.

Příklad zpracování chyby v Go:

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

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

Použití panic/recover:

func mayPanic() {
    panic("něco se pokazilo")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Obnoveno po panice:", r)
        }
    }()
    mayPanic()
    fmt.Println("Tento kód se nespustí")
}