一个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)