Bonjour,
Un tuto me propose de créer une petite calculatrice avec Java EE : j'ai créé deux inputs et une liste déroulante nommée "operation" où l'on peut choisir entre les quatre opérations de base. Tout fonctionne à merveille... mais un peu trop bien : si je pose 45/0, l'application m'affiche "45/0 = 0" !! J'ai pourtant bien géré l'erreur dans mon code.
op1 est le premier opérande, op2 le deuxième, signe est le signe de l'opération.
Voici le code de getResultat() qui renvoie l'attribut int resultat de mon bean :
(j'ai naturellement un getErreur()...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public int getResultat() throws ArithmeticException{ switch(operation){ case "addition": resultat = op1+op2; break; case "soustraction": resultat = op1-op2; break; case "multiplication": resultat = op1*op2; break; case "division": try { resultat = op1/op2; } catch (ArithmeticException e) { erreur = "Erreur : division par zéro !"; } break; default: operation = "addition"; resultat = op1+op2; break; } return resultat; }
J'ai aussi essayé la version suivante :
Et voici l'expression EL qui indique ce que je dois afficher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 case "division": if(op2==0){ erreur = "Erreur : division par zéro !!"; }else{ resultat = op1/op2; } break;
Y a-t-il quelque chose que je n'ai pas compris dans la syntaxe de {empty...?}. Pour info, j'ai essayé l'expression dans l'autre sens : ${empty calcul.erreur ? calcul.resultat:calcul.erreur}, j'ai essayé en passant une simple variable erreur (sans en faire un attribut du bean), j'ai essayé avec une simple condition, sans utiliser une exception... Mais l'application m'affirme encore et toujours qu'un entier divisé par zéro est égal à zéro !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 le résultat est : <br />${calcul.op1}${calcul.signe}${calcul.op2} = ${!empty calcul.erreur ? calcul.erreur : calcul.resultat}
Quelqu'un peut-il m'expliquer ce qui se passe ?
Partager