Exception + switch

Exception + switch - Java - Programmation

Marsh Posté le 13-10-2008 à 16:30:38    

Bonjour à tous!!!
Je n'arrive pas à inserer une exception dans mon switch au niveau de mon default pour que mon prog ne plante pas lorsqu'on saisi autre chose qu'un int...Quelqu'un pourrait il m'aider s'il vous plait?
 

Code :
  1. switch(sc.nextInt()){
  2.     case 1 :sMoyen = "toto";
  3.     tmp = true;
  4.     break;
  5.     case 2 :sMoyen = "tutu";
  6.     tmp = true;
  7.     break;
  8.     default : System.out.println("Mauvaise saisi" );
  9.     break;


Merci d'avance

Reply

Marsh Posté le 13-10-2008 à 16:30:38   

Reply

Marsh Posté le 13-10-2008 à 18:48:42    

de quoi :??:

 

sc ? c'est quoi donc ? en même temps, nextInt, ça devrait donner un entier, non ?

 

sinon, si tu veux lever une exception dans ton default, le mot clef que tu cherches, c'est throw.


Message édité par brisssou le 13-10-2008 à 18:50:16

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 14-10-2008 à 14:01:38    

sc vient certainement de Scanner.  
 
Le souci dans ton code muchachos14, c'est que l'exception est levée avant de rentrer dans le switch.
Quand ça passe sur ton nextInt(), ça renvoie direct l'exception sans aller voir ce qu'il y a plus loin.  

Reply

Marsh Posté le 14-10-2008 à 17:23:32    

Citation :

Je n'arrive pas à inserer une exception dans mon switch au niveau de mon default pour que mon prog ne plante pas lorsqu'on saisi autre chose qu'un int


 
Tu veux lever une exception ou en catcher une ?
 
Car si c'est comme Mulioak dit, il faut faire ça :

Code :
  1. int saisie;
  2. try {
  3.   saisie = sc.nextInt();
  4. } catch (XxxException e) {
  5.   saisie = -1; // ou toute autre valeur qui t'envera dans default
  6. }
  7. switch(saisie) {
  8.     case 1 :sMoyen = "toto";
  9.     tmp = true;
  10.     break;
  11.     case 2 :sMoyen = "tutu";
  12.     tmp = true;
  13.     break;
  14.     default : System.out.println("Mauvaise saisi" );
  15.     break;

Reply

Marsh Posté le 19-10-2008 à 18:07:10    


Ce serait peut-être un peu plus joli comme ça (mais les goûts et les couleurs...)

Code :
  1. int saisie;
  2. try {
  3.   saisie = sc.nextInt();
  4.   tmp = true;
  5.   switch(saisie) {
  6.     case 1 :sMoyen = "toto";
  7.     break;
  8.     case 2 :sMoyen = "tutu";
  9.     break;
  10.   }
  11. } catch (XxxException e) {
  12.   System.out.println("Mauvaise saisi" );
  13.   Log(e.printStackTrace());
  14. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed