Hoe worden uitzonderingen en fouten afgehandeld in uw toepassing?
sobes.tech AI
Antwoord van AI
In Go verschilt de foutafhandeling van veel andere talen, omdat er geen traditionele uitzonderingen zijn. In plaats daarvan retourneren functies meestal een foutwaarde (error) als tweede resultaat.
Belangrijkste benaderingen:
-
Foutcontrole na het aanroepen van een functie:
result, err := someFunction() if err != nil { // foutafhandeling log.Println("Fout:", err) return err } // verder gaan met result -
Aanmaken van eigen fouttypes met
errors.Newoffmt.Errorfvoor meer informatieve berichten. -
Panic (
panic) en recovery (recover) worden zelden gebruikt, vooral voor kritieke fouten die niet in de normale stroom mogen voorkomen. -
Fouten loggen en omhoog door de stack teruggeven voor gecentraliseerde verwerking.
Voorbeeld van foutafhandeling:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("deling door nul")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Fout:", err)
return
}
fmt.Println("Resultaat:", result)
}
Op deze manier worden fouten expliciet afgehandeld in Go, wat de leesbaarheid en betrouwbaarheid van de code verhoogt.