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 :

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 naturellement un getErreur()...)
J'ai aussi essayé la version suivante :

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;
Et voici l'expression EL qui indique ce que je dois afficher :

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}
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 !

Quelqu'un peut-il m'expliquer ce qui se passe ?