Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 IllegalStateException(확인되지 ​​않음)이 언제 발생합니까?

<시간/>

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)
에서