一个IllegalStateException异常 是未经检查 的异常 在Java中。如果我们正在处理java.util.package的收集框架,则该异常可能在我们的Java程序中出现。有许多类似List,Queue,Tree, Map的 集合,其中的List 和Queues (Queue和Deque)不在特定条件下抛出此IllegalStateException 。
一个IllegalStateExceptionexception 会被抛出,当我们试图在不适当的时间来调用特定的方法。
对于 java.util.List集合,我们使用List Iterator 接口的next()方法遍历java.util.List。如果我们在调用next() 方法之前调用ListIterator 接口的remove()方法,则将引发此异常,因为它将使List 集合处于不稳定 状态。
如果要修改一个特定的对象,我们将使用ListIterator 接口的set() 方法。
对于队列,如果我们尝试将元素添加到Queue,则必须确保队列未满。如果此队列已满,则我们无法添加该元素,这将导致引发IllegalStateExceptionException 。
import java.util.*;
public class IllegalStateExceptionTest {
public static void main(String args[]) {
List list = new LinkedList();
list.add("Welcome");
list.add("to");
list.add("Tutorials");
list.add("Point");
ListIterator lIterator = list.listIterator();
lIterator.next();
lIterator.remove();// modifying the list
lIterator.set("Tutorix");
System.out.println(list);
}
}输出结果
Exception in thread "main" java.lang.IllegalStateException at java.util.LinkedList$ListItr.set(LinkedList.java:937) at IllegalStateExceptionTest.main(IllegalStateExceptionTest.java:15)