L3-CPOO
TP3 : exceptions en Java, AGL
1 Exceptions
Reprendre l’exemple des suites r´ecurrentes du pr´ec´edent TP.
1. Introduire les exceptions.
Modifier le code de votre programme afin de r´ecup´erer les situations d’erreur suivantes :
(a) classes SuiteGeom et SuiteArithm : v´erifier que le rang transmis en argument (rgN ) est
sup´erieur `a 1 dans les 2 m´ethodes valeurAuRangN et sommeAuRangN.
(b) classe SuiteGeom : v´erifier que la progression est diff´erente de 1. Important pour le calcul de
sommeAuRangN pour ne pas faire une division par 0. La v´erification peut ˆetre faite
– dans la m´ethode sommeAuRangN ou
– au niveau du constructeur
Pour ce faire, vous pouvez dans l’ordre
(a) utiliser la classe Exception,
(b) cr´eer votre propre classe MonException, sous-classe de Exception,
(c) mettre votre classe MonException dans un nouveau paquetage paquetException.
2. Compl´eter votre documentation avec @trows ou @exception.
G´en´erer la nouvelle documentation avec javadoc.
3. Question compl´ementaire.
Compl´eter la classe SuiteArithm avec la m´ethode int calculRang(int) o`u l’argument correspond `a
un certain unet le r´esultat renvoy´e par la m´ethode est la valeur de l’indice n.
Exemple : pour une suite arithm´etique s1 de premier terme 1 et de pas 3, s1.calculRang(19) renverra
7 car 19 = u7pour cette suite.
Envisager le cas o`u l’argument transmis ne correspond pas `a un terme un.
2 Calculatrice : utilisation d’une grammaire
L’objectif de cet exercice est l’implantation d’une calculatrice. Le syst`eme est compos´e d’une calculatrice
capable de prendre en compte les op´erateurs binaires classiques (plus, moins, multiplier, diviser), les
op´erateurs unaires plus et moins. Dans le cadre de ce TP, nous ne consid´ererons que les constantes. Voici
la grammaire d’une expression arithm´etique :
EXPR →EXPR ’+’ EXPR MUL
| EXPR ’-’ EXPR MUL
| EXPR MUL
EXPR MUL →EXPR MUL ’*’ EXPR UNARY
| EXPR MUL ’/’ EXPR UNARY
| EXPR UNARY
EXPR UNARY →’+’ EXPR UNARY
| ’-’ EXPR UNARY
| EXPR CST
EXPR CST →’(’ EXPR ’)’
| constant
1