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.Newalebofmt.Errorfpre 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.