Initialisation d'une exception

Résolu
Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 - 4 août 2011 à 13:12
Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 - 4 août 2011 à 16:02
Bonjour à tous,
Une question qui peut sans doute sembler basique, mais je n'ai trouvé aucune réponse :
Je dois créer un type d'exception particulier, dont le comportement diffère en fonction de divers paramètres. Comment puis je initialiser cette exception, au début de mon programme, de manière à ne pas avoir, à chaque fois que j'appelle l'exception, à passer mes variables en paramètre d'entrée.

En gros, le programme ressemblerait à ca (C'est juste un exemple, je pense pas que ca marche en vrai):
public exceptionExemple()
{
My Exception myExc=new MyException(var1, var2, var3);
}

public void action() throws MyException
{
try
{
doThis();
}
catch(Exception)
{
throw myExcp.launchException(var4);
}
}

Merci beaucoup de votre aide

@+. Hermios

4 réponses

Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 2
4 août 2011 à 16:02
non ben en fait, j'ai trouvé :
Il suffit de construire ma classe exception MyException comme une classe normale, avec un "extends exception", et un constructeur pour initialiser, et une méthode launchException qui retourne une valeur de type "MyException".
Puis, dans ma classe principale, je crée une instance de MyException, myExcept, que j'initialise via le constructeur. Alors, lorsque je lance un throw, je fais throw myExcept.launchException(), et voilà!

Merci quand même pour ton aide.


@+. Hermios
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 août 2011 à 13:19
Bonjour,

Comme tu le décris, myExcp n'est pas une classe qui étend exception mais un lanceur uniquement.

Tu peux créer tes classes personnalisées, par contre, je te déconseil ce fonctionnement un peu fantaisiste qui apporte de la confusion au code.

Il est possible de faire fonctionner le code que tu donnes mais je ne peux pas te dire comment, je ne vois pas précisément ce que tu veux faire. Si tu me décris ce qu'il y a dans les variables var1, var2... Je te donnerai une solution.
0
Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 2
4 août 2011 à 14:11
Salut Julien,
En fait si, myExcp est une instance de la classe MyException, qui étend une exception. (J'évite de tout recréer moi même, je suis loin d'être assez bon pour ca!). Le but étant de la lancer malgré tout!

Pour les variables, ben y a du tout en fait : String, boolean etc.
C'est pas que je veux pas les donner, mais elles peuvent varier au fur et à mesure que je développe mon programme, donc je veux faire une exception assez vaste (Et pas essayer de récupérer chaque argument grâce à ses spécificités).

Merci de ton aide

@+. Hermios
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 août 2011 à 15:54
Alors je ne peux pas t'en dire plus pour l'instant.

Mais passer des variables dans des exceptions me semble être une assez mauvaise idée...
0
Rejoignez-nous