Exercice sur les Exceptions en Java
Contexte: Vous allez écrire un programme Java qui simule un système de gestion de comptes
bancaires. Le système doit gérer les dépôts et les retraits d'argent d'un compte. Si un retrait
excède le solde du compte, une exception personnalisée FondsInsuffisantsException doit
être levée.
Instructions:
1. Créez une classe CompteBancaire avec un attribut solde privé.
2. Ajoutez une méthode depot(double montant) pour ajouter de l'argent au compte.
3. Ajoutez une méthode retrait(double montant) pour retirer de l'argent du compte. Si le
montant à retirer est supérieur au solde, lancez une FondsInsuffisantsException .
4. Créez une exception personnalisée FondsInsuffisantsException qui étend Exception .
Elle doit contenir un message décrivant l'erreur.
5. Dans une classe Main, créez une instance de CompteBancaire et testez les
méthodes depot et retrait avec des valeurs différentes, en gérant
l'exception FondsInsuffisantsException .
Questions à poser après l'exécution:
1. Que se passe-t-il si un retrait est effectué avec un montant supérieur au solde du compte ?
2. Où devez-vous placer le bloc try-catch pour gérer
l'exception FondsInsuffisantsException ?
3. Que se passe-t-il si une exception est levée à l'intérieur d'un bloc try sans qu'un
bloc catch correspondant ne soit présent ?
4. Comment pouvez-vous assurer que certaines actions sont exécutées après un try-catch , que
des exceptions aient été levées ou non ?
5. Comment pouvez-vous propager une exception pour qu'elle soit gérée à un niveau supérieur
dans la pile d'appels ?
Exercice : Bibliothèque de Médias
Contexte
Vous êtes chargé de concevoir un système pour une bibliothèque qui gère différents types de
médias. Vous devez créer une hiérarchie de classes pour représenter les différents médias et
leurs comportements.
Instructions
1. Superclass and Subclass
Créez une classe abstraite Media avec les propriétés communes à tous les
médias : titre, auteur et annéeDePublication .
Définissez une méthode abstraite afficherDetails() dans Media.
2. Access Modifiers
Utilisez les modificateurs d'accès appropriés pour les propriétés et méthodes. Les
propriétés doivent être protégées, et la méthode afficherDetails() doit être
publique.
3. Constructor Inheritance
Créez des constructeurs dans la classe Media qui seront hérités par les sous-classes.
4. Method Overriding and Object Class
Créez des sous-classes Livre, DVD, et Journal qui héritent de Media.
Chaque sous-classe doit redéfinir (override) la méthode afficherDetails() pour
afficher ses détails spécifiques.
Redéfinissez également la méthode toString() de la classe Object dans chaque
sous-classe pour retourner une chaîne de caractères représentant l'objet.
5. Final and Inheritance
Ajoutez une méthode finale emprunter() dans la classe Media qui ne peut pas être
redéfinie par les sous-classes.
6. Abstract Classes
Créez une classe abstraite Periodique qui étend Media et ajoute une
propriété frequenceDePublication .
La classe Journal doit étendre Periodique .
7. Implementation
Dans la méthode principale (main), créez des instances de Livre, DVD, et Journal .
Affichez les détails de chaque instance en utilisant afficherDetails() et imprimez
l'objet en utilisant toString() .
Exercice : Application de Gestion de Bibliothèque
Contexte
Vous allez créer une application Java simple qui se connecte à une base de données
pour gérer les livres d'une bibliothèque.
Prérequis
Installez un SGBD (Système de Gestion de Base de Données) comme
MySQL, PostgreSQL ou SQLite.
Créez une base de données nommée bibliotheque.
À l'intérieur de cette base de données, créez une table livres avec les
colonnes suivantes :
id INT PRIMARY KEY AUTO_INCREMENT
titre VARCHAR(100)
auteur VARCHAR(100)
annee INT
Instructions
1. Configuration de l'environnement
Assurez-vous que le pilote JDBC pour votre SGBD est disponible
dans votre classpath. Pour MySQL, par exemple, vous auriez besoin
du connecteur MySQL JDBC.
2. Établir une connexion
Écrivez une classe GestionBibliotheque avec une
méthode connecter() qui établit une connexion avec la base de
données bibliotheque.
3. Insertion de données
Ajoutez une méthode ajouterLivre(String titre, String
auteur, int annee) qui insère un nouveau livre dans la
table livres.
4. Récupération de données
Ajoutez une méthode listerLivres() qui récupère et affiche tous les
livres de la base de données.
5. Mise à jour de données
Ajoutez une méthode modifierLivre(int id, String
nouveauTitre) qui met à jour le titre d'un livre basé sur son id.
6. Suppression de données
Ajoutez une méthode supprimerLivre(int id) qui supprime un
livre de la base de données basé sur son id.
7. Gestion des exceptions
Assurez-vous que votre code gère correctement les exceptions,
notamment SQLException.
8. Fermeture des ressources
Assurez-vous de fermer les Statement et Connection dans un
bloc finally ou en utilisant le try-with-resources statement.