Guides

Gestion des erreurs

Guide complet pour gérer les erreurs avec FNE Client

Gestion des erreurs

Ce guide vous montre comment gérer les erreurs avec FNE Client de manière efficace.

Vue d'ensemble

FNE Client utilise des exceptions typées pour gérer les erreurs. Chaque type d'erreur a sa propre exception, ce qui facilite la gestion et le débogage.

Hiérarchie des exceptions

Types d'exceptions

ValidationException

Lancée lorsque les données fournies sont invalides :

AuthenticationException

Lancée lorsque l'authentification échoue (clé API invalide) :

BadRequestException

Lancée lorsque la requête est mal formée (400) :

NotFoundException

Lancée lorsque la ressource n'est pas trouvée (404) :

ServerException

Lancée lorsque le serveur rencontre une erreur (500+) :

MappingException

Lancée lorsque le mapping des données échoue :

Gestion complète des erreurs

Exemple complet

Format des erreurs

Toutes les exceptions FNE implémentent une méthode toArray() pour obtenir un format standardisé :

Messages d'erreur localisés

Les messages d'erreur sont automatiquement localisés selon la configuration :

Logging des erreurs

FNE Client enregistre automatiquement les erreurs si un logger est configuré :

Retry automatique

Pour les erreurs serveur temporaires, vous pouvez implémenter un retry :

Bonnes pratiques

  1. Toujours gérer les exceptions : Ne laissez jamais les exceptions FNE non gérées
  2. Utiliser les types spécifiques : Utilisez les exceptions spécifiques plutôt que FNEException générique
  3. Logger les erreurs : Enregistrez les erreurs pour le débogage
  4. Messages utilisateur : Affichez des messages utilisateur conviviaux plutôt que les messages techniques
  5. Retry pour erreurs serveur : Implémentez un retry pour les erreurs serveur temporaires

Prochaines étapes

  • Cache - Utilisez le cache pour améliorer les performances
  • Logging - Configurez le logging pour le débogage
  • Exemples - Consultez plus d'exemples de gestion d'erreurs
Besoin d'aide ? Consultez la documentation complète ou ouvrez une issue sur GitHub.