Spec-Zone.ru › OpenJDK 25

Класс ConcurrentModificationException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.util.ConcurrentModificationException
Все реализуемые интерфейсы:
Serializable
Прямые известные подклассы:
DirectoryIteratorException
public class ConcurrentModificationException extends RuntimeException
Это исключение может быть выброшено методами, обнаружившими одновременное изменение объекта, если такое изменение недопустимо.

Например, как правило, одному потоку не разрешается изменять Collection, пока другой поток выполняет её перебор. В общем случае при таких обстоятельствах результаты перебора не определены. Некоторые реализации Iterator (включая реализации всех универсальных коллекций, предоставляемых JRE) могут выбросить это исключение, если обнаружат такое поведение. Итераторы, поступающие таким образом, называются fail-fast-итераторами, поскольку они быстро и корректно завершают работу, а не допускают произвольное, недетерминированное поведение в неопределённый момент в будущем.

Обратите внимание, что это исключение не всегда означает, что объект был одновременно изменён другим потоком. Если один поток выполняет последовательность вызовов методов, нарушающую контракт объекта, объект может выбросить это исключение. Например, если поток напрямую изменяет коллекцию во время её перебора с помощью fail-fast-итератора, итератор выбросит это исключение.

Обратите внимание, что гарантировать поведение fail-fast невозможно, поскольку, вообще говоря, при наличии несинхронизированных одновременных изменений нельзя дать никаких безусловных гарантий. Операции fail-fast выбрасывают ConcurrentModificationException по мере возможности. Поэтому было бы ошибкой писать программу, корректность которой зависит от этого исключения: ConcurrentModificationException следует использовать только для обнаружения ошибок.

Начиная с:
1.2
См. также:
  • Collection
  • Iterator
  • Spliterator
  • ListIterator
  • Vector
  • LinkedList
  • HashSet
  • Hashtable
  • TreeMap
  • AbstractList
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
ConcurrentModificationException()
Создаёт ConcurrentModificationException без подробного сообщения.
ConcurrentModificationException(String message)
Создаёт ConcurrentModificationException с указанным подробным сообщением.
ConcurrentModificationException(String message, Throwable cause)
Создаёт новое исключение с указанным подробным сообщением и причиной.
ConcurrentModificationException(Throwable cause)
Создаёт новое исключение с указанной причиной и подробным сообщением (cause==null ? null : cause.toString()) (которое обычно содержит класс и подробное сообщение cause.

Краткое описание методов

Методы, объявленные в классе Throwable

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

ConcurrentModificationException

public ConcurrentModificationException()
Создаёт ConcurrentModificationException без подробного сообщения.

ConcurrentModificationException

public ConcurrentModificationException(String message)
Создаёт ConcurrentModificationException с указанным подробным сообщением.
Параметры:
message — подробное сообщение, относящееся к этому исключению.

ConcurrentModificationException

public ConcurrentModificationException(Throwable cause)
Создаёт новое исключение с указанной причиной и подробным сообщением (cause==null ? null : cause.toString()) (которое обычно содержит класс и подробное сообщение cause.
Параметры:
cause — причина (сохраняется для последующего получения с помощью метода Throwable.getCause()). (Допускается значение null, указывающее на то, что причина отсутствует или неизвестна.)
Начиная с:
1.7

ConcurrentModificationException

public ConcurrentModificationException(String message, Throwable cause)
Создаёт новое исключение с указанным подробным сообщением и причиной.

Обратите внимание, что подробное сообщение, связанное с cause, не включается автоматически в подробное сообщение этого исключения.

Параметры:
message — подробное сообщение (сохраняется для последующего получения с помощью метода Throwable.getMessage()).
cause — причина (сохраняется для последующего получения с помощью метода Throwable.getCause()). (Допускается значение null, указывающее на то, что причина отсутствует или неизвестна.)
Начиная с:
1.7

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/ConcurrentModificationException.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API