Java InputMismatchException

J'ai ce code et j'ai envie d'attraper la lettre d'exception, mais il continue à avoir ces erreurs:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:840)
    at java.util.Scanner.next(Scanner.java:1461)
    at java.util.Scanner.nextInt(Scanner.java:2091)
    at java.util.Scanner.nextInt(Scanner.java:2050)
    at exercise_one.Exercise.main(Exercise.java:17)

Et voici mon code:

 System.out.print("Enter the number of students: ");

 students = input.nextInt(); 

 while (students <= 0) {

     try {

        System.out.print("Enter the number of students: ");

        students = input.nextInt();

     }

     catch (InputMismatchException e) {

        System.out.print("Enter the number of students");

     }
 }    
La première students = input.nextInt(); n'est pas à l'intérieur de la try bloc et votre entrer dans quelque chose qui ne peut pas être stockée dans un int.
Oui, il semble que ce soit le cas, mais comment puis-je vérifier pour les deux (lettre et les nombres négatifs exception)?
Facile. Il suffit de supprimer les 2 premières lignes de code que vous avez posté.
Si je supprime les deux premières lignes puis je vais avoir une erreur dans la boucle while parce que les élèves ont l'habitude d'une valeur
Non, vous ne le seront pas. students est un int, et ils ont toujours une valeur (la valeur par défaut est 0).

OriginalL'auteur John Stef | 2013-05-29