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.
- 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.
- 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).
- 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à).
- 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