Maison  >  Article  >  Java  >  Comment empêcher « java.util.NoSuchElementException » lors de l'utilisation de Scanner.nextInt() ?

Comment empêcher « java.util.NoSuchElementException » lors de l'utilisation de Scanner.nextInt() ?

DDD
DDDoriginal
2024-11-10 22:12:02189parcourir

How to Prevent

Gestion des erreurs pour nextInt() dans Scanner

Lors de la tentative de récupération d'un entier à l'aide de Scanner.nextInt(), les utilisateurs rencontrent parfois l'erreur :

java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextInt(Scanner.java:2160)
    at java.util.Scanner.nextInt(Scanner.java:2119)

Cette erreur se produit lorsque le flux d'entrée ne contient aucun entier à lire par nextInt(). Une méthode pour résoudre ce problème consiste à utiliser hasNexInt(). Cette fonction vérifie la présence d'un entier avant de tenter de le lire.

Scanner s = new Scanner(System.in);
int choice = 0;

if(s.hasNextInt()) 
{
   choice = s.nextInt();
}

s.close();

Cette modification garantit que nextInt() n'est appelé que lorsqu'un entier est disponible en lecture, évitant ainsi l'erreur. De plus, il est recommandé de fermer le scanner une fois terminé pour libérer les ressources système.

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!

Déclaration:
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