Maison > Java > javaDidacticiel > Comment éviter les boucles infinies lors de la gestion d'InputMismatchException dans un bloc try-catch ?

Comment éviter les boucles infinies lors de la gestion d'InputMismatchException dans un bloc try-catch ?

Susan Sarandon
Libérer: 2024-12-05 21:56:14
original
424 Les gens l'ont consulté

How to Avoid Infinite Loops When Handling InputMismatchException in a try-catch Block?

try/catch avec InputMismatchException Problème de boucle infinie

Lors de l'implémentation d'un code qui invite les utilisateurs à fournir des entrées entières, l'utilisation d'un bloc try/catch est pratique courante. Cependant, il est essentiel de gérer correctement les exceptions pour éviter les boucles infinies.

Dans l'exemple fourni, une exception est interceptée dans une boucle do-while. Si une exception InputMismatchException est levée, le message « Error ! » Le message est affiché à plusieurs reprises sans exécuter les itérations de boucle suivantes. Cela se produit car le tampon d'entrée reste dans un état incohérent et l'erreur ne peut pas être résolue simplement en interceptant l'exception.

Pour résoudre ce problème, les étapes suivantes sont nécessaires :

  • Dans le bloc catch, appelez input.next(); pour effacer le tampon d'entrée, permettant à l'utilisateur de saisir des données valides lors de l'itération suivante.
  • Envisagez d'utiliser hasNextInt() avant de lire des entiers pour vérifier si une entrée valide est disponible, réduisant ainsi le risque d'exceptions.

Voici un extrait de code modifié démontrant ces corrections :

catch (InputMismatchException e) {
    System.out.println("Error!");
    input.next();  // Clear the input buffer
}
Copier après la connexion

De plus, il est conseillé d'utiliser des blocs catch explicites pour des exceptions spécifiques, telles que InputMismatchException, afin de les gérer de manière appropriée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal