Bonjour,
Je me pose une question de conception.

J'ai une application avec une interface graphique et un modèle derrière.

Pour faire simple disons que je gère une série d’événement (qui ont une date et un type).
Mon interface graphique permet à l'utilisateur d'ajouter des événements.

Un évènement peut ne pas être ajouter au modèle pour différentes raisons().

Je cherche donc un mécanisme intelligent pour gérer cela

Voila la conclusion a la quelle je suis arrivé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
//faire un énumération pour les type d'erreur
 
public enum AddEvenementErreur {
    BEFORE_BEGINNING, AFTER_END, TOO_MANY
}
 
faire un exception qui a comme attibut le type d'erreur 
public  class ModeleException extends Exception{
private AddEvenementErreur  type;
...
...
...
}
et dans mon modèle d'avoir une méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public void addEvenement(Evenement E ) throw ModeleException {
//faire des test pour savoir si on peut ajouter l'événement
if (test1)  { throw new ModeleException(BEFORE_BEGINNING)  
if (test2)  { throw new ModeleException (AFTER_END)
if (test3 ){ throw new ModeleException (TOO_MANY)
 
//ajouter l événement
....
....
....
...
 
}
et dans mon UI d'avoir le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
try{
addEvenement(e);
 
} catch (ModeleException e ) {
 
String error_to_dysplay ;
if e.type = BEFORE_BEGINNING {error_to_dysplay = "blabla"}
if e.type = AFTER_END {error_to_dysplay = "testets"}
if e.type = TOO_MANY {error_to_dysplay = "testets"}
 
messageDialog.openError(shell,"ERREUR",error_to_dysplay}
 
}
Pensez vous que c'est une bonne manière de réglez le problème ?
Car sur internet on peux trouver des personnes qui disent que les Exception ne sont pas faite pour gérer les entrées des utilisateurs(alors que c'est ce que je fais) mais je ne vois pas de système moins compliqué.

En vous remerciant.

Cordialement