# EXO-JAVA-Gestion des exceptions ## Contexte Dans cet exercice, vous améliorerez le système de bibliothèque existant en ajoutant une gestion robuste des exceptions. L'objectif est de rendre l'application plus fiable et maintenable grâce à une meilleure gestion des erreurs. ## Objectifs 1. Créer une hiérarchie d'exceptions personnalisées 2. Améliorer la gestion des erreurs dans la classe Bibliothèque 3. Implémenter une validation robuste des données 4. Tester la gestion des exceptions ## Tâches ### 1. Création des exceptions personnalisées - Créer une classe `BibliothequeException` qui étend `Exception` - Implémenter les sous-classes suivantes : - `LivreNonDisponibleException` : lancée quand un livre n'est pas disponible - `LivreDejaEmprunteException` : lancée quand un livre est déjà emprunté - `DonneesInvalidesException` : lancée quand les données sont invalides ### 2. Amélioration de la classe Bibliothèque - Modifier les méthodes existantes pour utiliser les nouvelles exceptions - Ajouter des blocs try-catch appropriés - Implémenter une validation des données d'entrée ### 3. Gestion des erreurs de saisie - Créer une classe `ValidationUtil` avec des méthodes statiques pour : - Valider les titres de livres (non null, non vide) - Valider les noms d'auteurs (non null, non vide) - Valider les dates d'emprunt (format correct) ## Critères de validation - Le code compile sans erreur - Les exceptions sont correctement gérées ## Livrables 1. Les classes d'exceptions 2. La classe Bibliothèque modifiée 3. La classe ValidationUtil 4. La documentation JavaDoc ## Bonus - Ajouter un système de logging pour tracer les exceptions