Donc j'écris du code ici juste pour m'amuser mais j'ai trouvé une erreur que je n'arrive pas à résoudre. Ce bloc de code est censé prendre un int ... au début j'ai eu le hasNextInt() dans la boucle while tout seul pour essayer de m'assurer que je reçois la bonne entrée, mais comme le destin l'aurait fait ... j'ai eu le exception. J'ai ensuite ajouté une tentative d'attraper en pensant peut-être que je viens de faire quelque chose de mal ... et encore je reçois la même erreur. Je ne sais pas ce qui ne va pas ici. C'est en fait ma première fois en utilisant un bloc try catch (encore un peu un noob). ça me va bien et j'ai regardé la documentation en ligne et fait quelques recherches mineures mais en vain. quelqu'un peut-il identifier ce qui est mal ici? check it out:InputMismatchException ... même avec try/catch
do{
System.out.println("How much AP do you want to allocate towards HP? ");
try {//added try catch... still throwing the exception..
while(!in.hasNextInt()){//this should've been enough, apparently not
System.out.println("That is not a valid input, try again.");
in.nextInt();
}
} catch (InputMismatchException e) {
System.out.print(e.getMessage()); //trying to find specific reason.
}
hpInput = in.nextInt();
}while(hpInput < 0 || hpInput > AP);
si je suis entré dans une chaîne, il me donnerait la « Ce n'est pas une entrée valide, essayez à nouveau. » ligne .. mais l'exception se produirait encore juste après au lieu de simplement boucler jusqu'à ce qu'un int réel est détecté ... help plz ..
Vous posez la question à l'envers, vous vérifiez si l'entrée est valide et demandez à l'utilisateur d'entrer une nouvelle valeur ... Il pourrait être préférable d'obtenir l'entrée sous forme de 'String' et ensuite utiliser un autre 'Scanner' pour le valider ... – MadProgrammer
Je vois ... ok, je vais essayer maintenant, merci. –