Updated April 6, 2023
Definition of Java NoSuchElementException
The method nextElement throws NoSuchElementExceptionin Java in Enumeration, next method in NamingEnumeration, etc. It denotes that there are no further elements in the enumeration. This exception is the subclass of the exception of RuntimeException and implements the interface Serializable. In addition to Enumeration, there are some other class throws this exception. The following are the different classes and their methods.
- StringTokenizer::nextElement()
- Enumeration::nextElement()
- Iterator::next()
- NamingEnumeration::next()
Syntax, working, constructors, and examples of NoSuchElementException will be explained in the following sections.
Declaration:
Following is the declaration of NoSuchElementException.
public class NoSuchElementExceptionextends RuntimeException
How does NoSuchElementException Work in Java?
As we know, the exception is an error that occurred during program execution. Program gets terminated, and the lines of code after the line that caused the exception won’t be executed when an exception is thrown. There are different situations whereNosuchElementException is thrown. They are:
- NosuchElementException is thrown during the run time to call the method nextElement( ) of the class Enumeration on an anull enumeration object, or the present position is Enumeration end.
- NosuchElementException is thrown during the run time on calling the method nextElement( ) or nextToken() of the class StringTokenizeron anull enumeration object or, the present position isStringTokenizerend.
- NosuchElementException is thrown during the run time on calling the method next( ) of the class Iterator on anull Iterator object or, the present position isIterator end.
- NosuchElementException is thrown during the run time on calling the method next( ) of the class ListIteratoron anull ListIteratorobject or, the present position isListIteratorend.
- NosuchElementException is thrown during the run time on calling the method previous ( ) of the class ListIteratoron anull ListIteratorobject or, the present position isListIteratorstart.
Constructors
Following are the two constructors of NoSuchElementException
- NoSuchElementException(): NoSuchElementException will be constructed without providing any error messages or notifications as string.
- NoSuchElementException(Stringst): NoSuchElementException will be constructed that provides error messages or notifications as string st. This is used for later retrieval with the help of the method getMessage. Class name that contains the error will be present in the string st.
Examples of Java NoSuchElementException
Let us see some of the sample programs that throw NoSuchElementException in Java.
Example #1
Java program to throw NoSuchElementExceptionas there is no element in 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();
} }
Output:
In this program, a hashset is created first, and the next element in the set is selected using the next() method. As there is no element in the set, NoSuchElementException is thrown. In order to avoid this, a check can be given before iterating the setas shown below.
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());
}
}
}
To check the presence of elements, a while loop and an iterator are added to the existing program. If this code is executed, it can be seen that no exceptions are thrown.
Example #2
Java program to throw NoSuchElementException as there is no element in 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();
} }
Output:
In this program, a hash table is created first, and the next element in the table is selected using the nextElement() method. As there is no element in the table, NoSuchElementException is thrown. In order to avoid this, a check can be given before iterating the table, as shown below.
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());
}
} }
In order to check the presence of elements, a while loop, a set, and an iterator is added to the existing program. If this code is executed, it can be seen that no exceptions are thrown.
Example #3
Java program to throw NoSuchElementException as there is no element in StringTokenizer and 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());
}
}
Output:
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.
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.
Recommended Articles
This is a guide to Java NoSuchElementException. Here we also discuss the definition and how it works in java and different examples, and its code implementation. You may also have a look at the following articles to learn more –