English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Исключения - это проблемы, возникающие в процессе выполнения программы (ошибки времени выполнения). При возникновении исключения программа внезапно завершает свою работу, и код, следующий за строкой, вызвавшей исключение, никогда не будет выполнен. Каждое исключение представлено своей собственной классом.
Это исключение времени выполнения, то есть оно возникает во время выполнения.
Если вы пытаетесь получить элемент из пустого объекта или использовать методы доступа к содержимому набора, массива или другого объекта с помощью Enumeration, Iterator или tokenizer (например, next() или nextElement()), то попытка получить следующий элемент после достижения конца объекта (набора, массива или другого объекта) вызовет NoSuchElementException.
СценарийМетод nextElement() для Enumeration - Vector
Используя этот объект, можно последовательно получать элементы с помощью метода nextElement().
Если этот метод вызывается на пустом наборе данных или после достижения конца набора данных, будет сгенерирован NoSuchElementException в режиме выполнения.
import java.util.Enumeration; import java.util.Vector; public class EnumExample { public static void main(String args[]) { //Инстанцирование вектора Vector<Integer> vec = new Vector<Integer>(); //Заполнение вектора vec.add(1254); vec.add(4587); //Использование枚герации для поиска элементов Enumeration<Integer> en = vec.elements(); System.out.println(en.nextElement()); System.out.println(en.nextElement()); //After reaching the end, retrieve the next element System.out.println(en.nextElement()); } }
1254 4587 Exception в потоке "main" java.util.NoSuchElementException: Vector Enumeration at java.util.Vector$1.nextElement(Unknown Source) at MyPackage.EnumExample.main(EnumExample.java:18)
Методы nextElement() и nextToken() в StringTokenizer -Класс StringTokenizer принимает String и delimiter в качестве параметра之一 своего конструктора, и каждый раз, когда встречается заданный разделитель, данная строка разбивается на несколько малых маркеров.
Методы nextToken() и nextElement() возвращает следующий токен из генератора токенов. Если вызывать эти методы на пустом объекте Tokenizer или после завершения работы, будет сгенерирован NoSuchElementException в режиме выполнения.
import java.util.StringTokenizer; public class StringTokenizerExample{ public static void main(String args[]) { String str = "Hello how are you"; //Instantiate StringTokenizer class StringTokenizer tokenizer = new StringTokenizer(str, " "); //Print all tokens System.out.println(tokenizer.nextToken()); System.out.println(tokenizer.nextToken()); System.out.println(tokenizer.nextToken()); System.out.println(tokenizer.nextToken()); //After reaching the end, get the next token tokenizer.nextToken(); tokenizer.nextElement(); } }
Hello how are you Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source) at MyPackage.StringTokenizerExample.main(StringTokenizerExample.java:16)
Метод next() Iterator -Java предоставляет классы Iterator и ListIterator для получения элементов объектов набора. Метод next() Iterator и ListIterator возвращает следующий элемент набора.
Если эти методы вызываются на пустом наборе или вызывается NoSuchElementException в конце, то в режиме выполнения генерируется.
Таким образом, если этот метод вызывается на пустом объекте или в месте его объявления, метод previous() ListIterator возвращает предыдущий элемент набора и генерирует NoSuchElementException в режиме выполнения.
import java.util.ArrayList; import java.util.Iterator; public class NextElementExample{ public static void main(String args[]) { //Инстанцирование объекта ArrayList ArrayList<String> list = new ArrayList<String>(); //Заполнение ArrayList list.add("apples"); list.add("mangoes"); list.add("oranges"); //Получение объекта Iterator ArrayList Iterator it = list.iterator(); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); //After reaching the end, retrieve the next element it.next(); } }
apples mangoes oranges Exception in thread "main" java.util.NoSuchElementException at java.util.ArrayList$Itr.next(Unknown Source) at MyPackage.NextElementExample.main(NextElementExample.java:19)
import java.util.ArrayList; import java.util.ListIterator; public class NextElementExample{ public static void main(String args[]) { //Инстанцирование объекта ArrayList ArrayList<String> list = new ArrayList<String>(); //Заполнение ArrayList list.add("apples"); list.add("mangoes"); list.add("oranges"); //Получение объекта Iterator ArrayList ListIterator<String> it = list.listIterator(); it.next(); it.next(); it.next(); System.out.println(it.previous()); System.out.println(it.previous()); System.out.println(it.previous()); System.out.println(it.previous()); } }
Результат вывода
oranges mangoes apples Exception in thread "main" java.util.NoSuchElementException at java.util.ArrayList$ListItr.previous(Unknown Source) at MyPackage.NextElementExample.main(NextElementExample.java:22)