karemkadidola
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention21 février 2012
-
11 avril 2010 à 15:03
karemkadidola
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention21 février 2012
-
17 avril 2010 à 16:03
j'ai un problème avec un try catch que j'engloble dans une boucle tant que (comme on peut le voir dans le code)
c code fait partie d'un package qui implemente un jeu de dame.
brève explication; il y un joueurConsole qui doit entre son coup à jouer à partir du clavier. la classe coup factory construit un coup selon la liste de position que le jouerConsole renvoie (le coup constuit par coupFactory sera soit un DéplacementPion soit une PrisePion-ils héritent de coup en effet) le coup constuit possède une methode qui s'appelle jouer susceptible de lance soit un coupInvalideException soit un illegalArgumentexcption. ici je vous présente la méthode jouerUnCoup qui pose problème et que j'ai tirée de la classe Jeu. voilà en bref le résumé.
mon problème est que je veux retourner chaque fois dans boucle while pour redemander au jouerConsole une nouvelle liste de position afin de rejouer un coup après un coup déclaré invalide...et ça tant qu'un coup ne sera pas valide mais ça ne marche qu'au maximum (2 fois) avec deux coupInvalides successifs. je ne retourne pas du tout dans ma boucle comme si le fait d'avoir lancée l'exception m'empeche de retourner dans le "tant que" quelqu'un pourra t il me dire la raison de ce problème?? ça fait plusieurs jours que je cherche..merci d'avance à vous...
cs_vpoyo
Messages postés363Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention20 avril 20106 11 avril 2010 à 16:48
Bonjour,
En fait l'exception est levé par la méthode "jouer".
le problème c'est que dans ton catch tu rappelles cette méthode, et qui re-provoque une erreur. comme dans le bloc catch il n'y a pas un autre bloc try, l'erreur te fait sortir de la boucle et même de la méthode "jouer un coup".
en résumé :
je joue mon coup, s'il y a une erreur, j'affiche l'erreur, je demande une nouvelle position, et je flag comme quoi il y a eu une erreur ce qui me permettra de boucler.
Pour faire plus simple, j'ai mis qu'un type d'Exception.
Attention, la demande de position pourrait très bien renvoyée elle aussi une erreur, et tu retomberais sur le même problème.
karemkadidola
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention21 février 2012 17 avril 2010 à 16:03
Merci beaucoup très cher vpoyo, j'ai trainé de te remercier, le message était tombé dans mon junkmail et je viens seulement de le recupérer, en effet j'avais déjà trouvé la solution et c'est très exactement ce que vous venez de me dire là..mais j'ai trop galerer avant car je ne comprenais pas du tout ce "pouvoir supreme qui me fesait quitter le tant que..." encore une fois merci pour le temps accordé sur mon problème...