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 :
Voici un extrait de code modifié démontrant ces corrections :
catch (InputMismatchException e) { System.out.println("Error!"); input.next(); // Clear the input buffer }
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!