NoSuchElementException対策
下記のソースでは、まずArrayListのオブジェクトを作成し、
3つの文字列を格納しています。次に、Iteratorのnextメソッドによって
各要素を順番に処理しています。
samples/exception/NoSuchElementExceptionTest.java - Eclipse SDK
|
package samples.exception;
import java.util.ArrayList;
import java.util.Iterator;
public class NoSuchElementExceptionTest {
public static void main(String[] args) {
try {
ArrayList list = new ArrayList();
list.add("red");
list.add("green");
list.add("blue");
Iterator it = list.iterator();
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
|
ここでは3つしか要素を入れていないのにもかかわらず、
nextメソッドを4回実行していますので、4回目のところで
NoSuchElementException例外が創出されます。
コマンド プロンプト
|
C:\JavaMaster\bin>java -cp . samples.exception.NoSuchElementExceptionTest
red
green
blue
java.util.NoSuchElementException
at java.util.AbstractList$Itr.next(Unknown Source)
at samples.exception.NoSuchElementExceptionTest.main(NoSuchElementExceptionTest.java:18)
|
通常は、hasNext を使って
while (it.hasHext()) { it.next() }
というように、次の要素があるかどうかを確認してから
nextメソッドを呼び出します。
|