IllegalStateException 선택되지 않음입니다. 예외 자바에서. 이 예외는 주로 java.util.package 컬렉션 프레임워크를 처리하는 경우 Java 프로그램에서 발생할 수 있습니다. . 목록, 대기열, 트리, 와 같은 많은 컬렉션이 있습니다. 지도 목록 중 및 대기열 (Queue 및 Deque) 이 IllegalStateException 을 발생시킵니다. 특정 조건에서.
IllegalStateException이 발생하는 시기
- IllegalStateException 예외 부적절한 시간에 특정 메서드를 호출하려고 하면 throw됩니다.
- java.util.List의 경우 컬렉션에서는 next()를 사용합니다. 목록 메소드 반복자 java.util.List.를 통과하는 인터페이스 remove()를 호출하면 ListIterator 메소드 next() 를 호출하기 전에 인터페이스 메소드를 사용하면 이 예외가 목록 을 떠날 때 발생합니다. 불안정한 컬렉션 상태 .
- 특정 객체를 수정하려면 set() ListIterator 메소드 인터페이스
- 대기열의 경우 , 대기열에 요소를 추가하려고 하면 , 그런 다음 대기열이 가득 차지 않았는지 확인해야 합니다. 이 대기열이 가득 차면 해당 요소를 추가할 수 없으며 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)에서