Exception du type InputMismatchException
L’exception de type “InputMismatchException” peut être levée lorsqu’un programme utilisant la fonction Scanner.nextInt(System.in) reçoit en argument une donnée dont le type est erroné. Concrètement dans le bout de code suivant par exemple :
import java.util.Scanner;
public class Test4 {
public static void main (String[] args){
Scanner scan = new Scanner(System.in); //création d'un objet de type scanner
System.out.println("Veuillez entrez un chiffre entier");
int RecupDuChiffre=scan.nextInt();
System.out.println(RecupDuChiffre);
}
}
On demande à l’utilisateur d’entrée un chiffre à la console. Si par exemple, ce dernier entre une lettre, ou un chiffre décimal, un symbole tel une parenthèse, bref tout type de donnée sauf un chiffre entier, la console d’Eclipse afficher ce message d’erreur, à lire de la dernière ligne vers la première :
Exception in thread « main » java.util.InputMismatchException //Précision du type de l’erreur qui fait planter le programme.
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source) // Il s’agit d’une erreur liée à l’utilisation de la méthode nextInt de la classe Scanner
at Test4.main(Test4.java:6) //il y a un problème à la ligne 6 dans la méthode main.
Eclipse nous indique que la donnée entrée fait planter le programme, et qu’il nous faut lever une exception de type InputMismatchException
Documentation Sun: InputMismatchException