Gestion des exceptions liées à la saisie numérique
Lors de la lecture d'entrées numériques à l'aide de la classe Scanner
, il est important de gérer les exceptions potentielles qui peuvent se produire. Une exception courante est InputMismatchException
, qui est levée lorsque l'utilisateur saisit une valeur non numérique.
Pour gérer ces exceptions, vous pouvez utiliser un bloc try-catch
pour capturer l'exception et fournir une gestion d'erreur appropriée. Voici un exemple :
import java.util.InputMismatchException;
import java.util.Scanner;
public class NumericInputException {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("Enter a long integer: ");
long longNumber = scanner.nextLong();
System.out.println("You entered: " + longNumber);
} catch (InputMismatchException e) {
System.out.println("Error: Invalid input. Please enter a valid long integer.");
} finally {
scanner.close();
}
}
}
Dans cet exemple, nous enveloppons l'appel scanner.nextLong()
dans un bloc try
. Si l'utilisateur saisit une valeur non numérique, l'exception InputMismatchException
est capturée et nous affichons un message d'erreur. Enfin, nous fermons l'objet Scanner
dans le bloc finally
pour nous assurer que les ressources système sont correctement libérées.
En gérant les exceptions, vous pouvez rendre vos applications Java plus robustes et offrir une meilleure expérience utilisateur en gérant gracieusement les entrées inattendues.
De plus, vous pouvez utiliser une boucle pour inviter l'utilisateur à saisir des données jusqu'à ce qu'un entier long valide soit entré. Voici un exemple :
import java.util.InputMismatchException;
import java.util.Scanner;
public class NumericInputException {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long longNumber;
boolean validInput = false;
while (!validInput) {
try {
System.out.print("Enter a long integer: ");
longNumber = scanner.nextLong();
validInput = true;
System.out.println("You entered: " + longNumber);
} catch (InputMismatchException e) {
System.out.println("Error: Invalid input. Please enter a valid long integer.");
scanner.nextLine(); // Clear the input buffer
}
}
scanner.close();
}
}
Dans cet exemple, nous utilisons une boucle while
pour inviter l'utilisateur à saisir des données jusqu'à ce qu'un entier long valide soit entré. L'appel scanner.nextLine()
est utilisé pour vider le tampon d'entrée après la capture d'une exception InputMismatchException
, permettant à l'utilisateur d'entrer une nouvelle valeur.
En gérant les exceptions et en mettant en place un processus de validation d'entrée robuste, vous pouvez vous assurer que vos applications Java peuvent gérer gracieusement une variété d'entrées utilisateur et offrir une meilleure expérience utilisateur globale.