TP sur les exceptions

Page Home (contact) Retour TPs

Support de cours


Exceptions dans les étagères

Voici des classes Livre et Etagere qui modélisent des étagères de livre ; un exemple d'utilisation. Étudiez le code de ces classes.

  1. Dans la méthode "ajouter" de Etagere qui ajoute un livre sur l'étagère, enlevez les tests qui vérifient que l'étagère n'est pas pleine. Dans la méthode main, provoquez la levée d'exception en ajoutant un livre dans une étagère pleine. Notez les noms des exceptions levées.
  2. Mettez dans des blocs "try ... catch" les appels à la méthode ajouter. Les messages d'erreurs seront affichés par ces blocs dans la méthode utilisatrice des étagères. Dans votre message d'erreur, faites afficher la pile des appels de méthodes qui a conduit à l'erreur (voir printStackTrace).
  3. Ecrivez votre propre classe d'exception EtagerePleineException pour ce type d'exception. La méthode ajouter devra utiliser cette nouvelle exception. Un attribut privé de cette classe sera une référence vers l'étagère qui a provoqué le problème. Les méthodes qui utiliseront Etagere (en dehors de Etagere) pourront ainsi afficher des messages du type "Impossible d'ajouter un livre à cette étagère car elle ne peut contenir que 6 livres", ou plus généralement, récupérer des informations sur l'étagère où il y a eu un problème (par exemple, afficher la liste des livres qu'elle contient déjà).
  4. Les exceptions doivent être traitées par la méthode qui en sait assez pour prendre la bonne décision. Par exemple, il serait mauvais de traiter l'exception par la méthode ajouter qui ne peut prendre la bonne décision. Pour illustrer cela, écrivez une classe Librairie qui possède une méthode ajouterLivre qui ajoute des livres dans des étagères. Si une étagère est pleine alors que l'on veut ajouter un livre, on n'affiche pas de message d'erreur mais on crée une nouvelle étagère dans laquelle on range le livre. Vous créerez des étagères qui peuvent contenir 3 livres et vous rangerez les étagères dans un ArrayList<Etagere>. Pour créer une instance d'une telle liste : listeEtageres = new ArrayList<Etagere>(); pour ajouter une étagère dans une telle liste : listeEtageres.add(etagere);
    Ajoutez à la classe Librairie une méthode qui affiche tous les livres qui ont été ajoutés.

Correction :

Classe Librairie
Classe Etagere
Classe EtagerePleineException


Retour TPs