Sobes.tech
Junior — Middle

Ako sa v vašej aplikácii spravujú výnimky a chyby?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa správa chýb líši od mnohých iných jazykov, pretože tu nie sú bežné výnimky. Namiesto toho funkcie zvyčajne vracajú hodnotu chyby (error) ako druhý výsledok.

Hlavné prístupy:

  • Kontrola chyby po volaní funkcie:

    result, err := someFunction()
    if err != nil {
        // spracovanie chyby
        log.Println("Chyba:", err)
        return err
    }
    // pokračovanie s result
    
  • Vytváranie vlastných typov chýb pomocou errors.New alebo fmt.Errorf pre informatívnejšie správy.

  • Paniky (panic) a obnova (recover) sa zriedka používajú, hlavne pre kritické chyby, ktoré by sa nemali vyskytnúť v normálnom toku.

  • Logovanie chýb a ich vracanie hore na zásobník pre centralizované spracovanie.

Príklad spracovania chyby:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("delenie nulou")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Chyba:", err)
        return
    }
    fmt.Println("Výsledok:", result)
}

Takto sú chyby v Go explicitne spracované, čo zvyšuje čitateľnosť a spoľahlivosť kódu.