Junior — Middle
Jak je ve vaší aplikaci spravováno výjimky a chyby?
sobes.tech AI
Odpověď od AI
V jazyce Go se správa chyb liší od mnoha jiných jazyků, protože zde neexistují výjimky v obvyklém smyslu. Místo toho funkce obvykle vracejí hodnotu chyby (error) jako druhý výsledek.
Hlavní přístupy:
-
Kontrola chyby po volání funkce:
result, err := someFunction() if err != nil { // zpracování chyby log.Println("Chyba:", err) return err } // pokračování s result -
Vytváření vlastních typů chyb pomocí
errors.Newnebofmt.Errorfpro informativnější zprávy. -
Paniky (
panic) a obnova (recover) se používají zřídka, hlavně pro kritické chyby, které by se neměly stát v normálním toku. -
Logování chyb a jejich vracení nahoru na zásobník pro centralizované zpracování.
Příklad zpracování chyby:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("dělení nulou")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Chyba:", err)
return
}
fmt.Println("Výsledek:", result)
}
Tímto způsobem jsou chyby v Go explicitně zpracovávány, což zvyšuje čitelnost a spolehlivost kódu.