Maison  >  Article  >  Java  >  Java NoSuchElementException

Java NoSuchElementException

PHPz
PHPzoriginal
2024-08-30 16:13:18951parcourir

La méthode nextElement lève NoSuchElementException en Java dans Enumeration, la méthode next dans NamingEnumeration, etc. Cela indique qu'il n'y a aucun autre élément dans l'énumération. Cette exception est la sous-classe de l'exception de RuntimeException et implémente l'interface Serialisable. En plus de l'énumération, il existe d'autres classes qui lèvent cette exception. Voici les différentes classes et leurs méthodes.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

  • StringTokenizer::nextElement()
  • Enumeration::nextElement()
  • Itérateur :: suivant ()
  • NamingEnumeration::next()

La syntaxe, le fonctionnement, les constructeurs et les exemples de NoSuchElementException seront expliqués dans les sections suivantes.

Déclaration :

Voici la déclaration de NoSuchElementException.

public class NoSuchElementExceptionextends RuntimeException

Comment fonctionne NoSuchElementException en Java ?

Comme nous le savons, l'exception est une erreur survenue lors de l'exécution du programme. Le programme est terminé et les lignes de code après la ligne qui a provoqué l'exception ne seront pas exécutées lorsqu'une exception est levée. Il existe différentes situations dans lesquelles NosuchElementException est levée. Ce sont :

  • NosuchElementException est levée pendant l'exécution pour appeler la méthode nextElement() de la classe Enumeration sur un objet d'énumération nul, ou la position actuelle est Enumeration end.
  • NosuchElementException est levée pendant l'exécution lors de l'appel de la méthode nextElement() ou nextToken() de la classe StringTokenizer sur un objet d'énumération nul ou, la position actuelle estStringTokenizerend.
  • NosuchElementException est levée pendant l'exécution lors de l'appel de la méthode next( ) de la classe Iterator sur un objet Iterator nul ou, la position actuelle estIterator end.
  • NosuchElementException est levée pendant l'exécution lors de l'appel de la méthode next( ) de la classe ListIterator sur un objet ListIterator nul ou, la position actuelle estListIteratorend.
  • NosuchElementException est levée pendant l'exécution lors de l'appel de la méthode previous () de la classe ListIterator sur un objet ListIterator nul ou, la position actuelle estListIteratorstart.

Constructeurs

Voici les deux constructeurs de NoSuchElementException

  • NoSuchElementException() : NoSuchElementException sera construit sans fournir de message d'erreur ou de notification sous forme de chaîne.
  • NoSuchElementException(Stringst) : NoSuchElementException sera construit et fournira des messages d'erreur ou des notifications sous forme de chaîne st. Ceci est utilisé pour une récupération ultérieure à l’aide de la méthode getMessage. Le nom de la classe qui contient l'erreur sera présent dans la chaîne st.

Exemples de Java NoSuchElementException

Voyons quelques exemples de programmes qui lancent NoSuchElementException en Java.

Exemple n°1

Programme Java pour lancer NoSuchElementException car il n'y a aucun élément dans HashSet.

Code :

import java.util.HashSet;
import java.util.Set;
//class
public class NoExample {
//main method
public static void main(String[] args) {
//create an object for set s
Set s = new HashSet();
//select the next element
s.iterator().next();
}  }

Sortie :

Java NoSuchElementException

Dans ce programme, un hashset est créé en premier et l'élément suivant de l'ensemble est sélectionné à l'aide de la méthode next(). Comme il n’y a aucun élément dans l’ensemble, NoSuchElementException est levée. Afin d'éviter cela, une vérification peut être effectuée avant d'itérer les setas indiqués ci-dessous.

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
//class
public class NoExample {
//main method
public static void main(String[] args) {
Set e = new HashSet();
Iterator it = e.iterator();
//checks whether any element is present
while(it.hasNext()) {
System.out.println(it.next());
}
}
}

Pour vérifier la présence d'éléments, une boucle while et un itérateur sont ajoutés au programme existant. Si ce code est exécuté, on peut voir qu'aucune exception n'est levée.

Exemple n°2

Programme Java pour lancer NoSuchElementException car il n'y a aucun élément dans HashTable

Code :

import java.util.Hashtable;
//class
public class NoExample {
//main method
public static void main(String[] args) {
//create an object for hashtable s
Hashtable s = new Hashtable();
//select the next element
s.elements().nextElement();
}  }

Sortie :

Java NoSuchElementException

Dans ce programme, une table de hachage est créée en premier et l'élément suivant de la table est sélectionné à l'aide de la méthode nextElement(). Comme il n'y a aucun élément dans le tableau, NoSuchElementException est levée. Afin d'éviter cela, une vérification peut être effectuée avant de parcourir le tableau, comme indiqué ci-dessous.

import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
//class
public class NoExample {
//main method
public static void main(String[] args) {
//create an object for hashtable s
Hashtable s = new Hashtable();
Set<String>k = s.keySet();
Iterator<String>i = k.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}  }

Afin de vérifier la présence d'éléments, une boucle while, un ensemble et un itérateur sont ajoutés au programme existant. Si ce code est exécuté, on peut voir qu'aucune exception n'est levée.

Exemple #3

Programme Java pour lancer NoSuchElementException car il n'y a aucun élément dans StringTokenizer et Enumeration.

Code :

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
//class
public class NoExample {
private final static int el = 2;
//main method
public static void main(String[] args) {
//declare a string
String sn= "Happy Days never ends";
Hashtable s= new Hashtable(el);
Enumeration t = s.elements();
//create an object for StringTokenizer
StringTokenizer st = new StringTokenizer(sn, " ");
//Print the tokens
System.out.println(st.nextToken());
System.out.println(st.nextToken());
System.out.println(st.nextToken());
System.out.println(st.nextToken());
System.out.println(st.nextToken());
st.nextToken();
st.nextElement();
System.out.println(t.nextElement());
System.out.println(t.nextElement());
}
}

Sortie :

Java NoSuchElementException

In this program, a StringTokenizer is created first, and tokens are selected five times. As there are only four tokens, NoSuchElementException is thrown. In order to avoid this, a check can be given before iterating the Tokenizeras shown below.

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
//class
public class NoExample {
private final static int el = 2;
//main method
public static void main(String[] args) {
//declare a string
String sn= "Happy Days never ends";
Hashtable s= new Hashtable(el);
Enumeration t = s.elements();
//create an object for StringTokenizer
StringTokenizer st = new StringTokenizer(sn, " ");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}

In order to check the presence of elements, a while loop is added to the existing program. If this code is executed, it can be seen that no exceptions are thrown.

Java NoSuchElementException

Conclusion

NoSuchElementException is an exception that is thrown when there are no elements retrieved on calling the method next( ) and nextElement( ) in classes Iterator, StringTokenizer, Enumeration and NamingEnumeration. In this article, different aspects such as the declaration, working, constructors, and examples of NoSuchElementException is explained in detail.

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
Article précédent:Types d'exceptions en JavaArticle suivant:Types d'exceptions en Java