Comment la gestion des exceptions et des erreurs est-elle effectuée dans votre application?
sobes.tech IA
Réponse de l'IA
En Go, la gestion des erreurs diffère de celle de nombreux autres langages, car il n’y a pas d’exceptions au sens traditionnel. À la place, les fonctions retournent généralement une valeur d’erreur (error) en second résultat.
Approches principales :
-
Vérification de l’erreur après l’appel d’une fonction :
result, err := someFunction() if err != nil { // gestion de l’erreur log.Println("Erreur:", err) return err } // continuer avec result -
Création de types d’erreurs personnalisés avec
errors.Newoufmt.Errorfpour des messages plus informatifs. -
Paniques (
panic) et récupération (recover) sont rarement utilisés, principalement pour des erreurs critiques qui ne devraient pas se produire dans le flux normal. -
Journalisation des erreurs et leur remontée dans la pile pour une gestion centralisée.
Exemple de gestion d’erreur :
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division par zéro")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Erreur:", err)
return
}
fmt.Println("Résultat:", result)
}
Ainsi, en Go, les erreurs sont gérées explicitement, ce qui améliore la lisibilité et la fiabilité du code.