Maison >Java >javaDidacticiel >Comment éviter « NoSuchElementException » lors de l'utilisation du « Scanner » de Java ?
Débogage de NoSuchElementException en Java
Lorsque vous rencontrez "NoSuchElementException" lors de l'utilisation de la classe Scanner de Java, cela indique une divergence entre l'entrée fournie et la les attentes de la classe. L'erreur se produit lorsque le scanner tente de récupérer une valeur mais qu'aucune valeur n'est trouvée.
Considérez l'extrait de code suivant :
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1, number2, sum; System.out.print("Enter First Integer: "); number1 = input.nextInt(); System.out.print("Enter Second Integer: "); number2 = input.nextInt(); sum = number1 + number2; System.out.printf("Sum is %d\n", sum); } }
Si l'utilisateur ne saisit qu'un seul entier et appuie sur Entrée avant de saisir le deuxièmement, il lancera un NoSuchElementException.
Solution
Pour résoudre ce problème, vérifiez la disponibilité d'un autre entier avant de le lire. Voici une version modifiée du code :
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle input error or set number1 to a default value }
En incorporant cette vérification, le code garantit qu'il ne lit un entier que lorsqu'il est disponible, empêchant ainsi l'exception.
Alternative Option
Une autre approche consiste à utiliser la méthode hasNextLine() pour vérifier s'il y a d'autres entrées, puis à appeler nextLine() pour vider le tampon avant de tenter de récupérer un autre entier.
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!