Класс ConcurrentModificationException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.lang.RuntimeException
-
- java.util.ConcurrentModificationException
- Все реализованные интерфейсы:
- Serializable
- Прямые известные подклассы:
- DirectoryIteratorException
public class ConcurrentModificationException extends RuntimeException
Этот исключение может быть сгенерировано методами, которые обнаружили одновременную модификацию объекта, когда такая модификация недопустима.
Например, обычно недопустимо, чтобы один поток изменял коллекцию, в то время как другой поток итерируется по ней. В общем случае результаты итерации в таких обстоятельствах не определены. Некоторые реализации итераторов (включая все реализации коллекций общего назначения, предоставляемые JRE) могут выбрать бросить это исключение, если такое поведение будет обнаружено. Такие итераторы известны как быстродействующие итераторы, поскольку они быстро и четко завершают работу, а не рискуют произвольным, неопределенным поведением в неопределенное время в будущем.
Обратите внимание, что это исключение не всегда указывает на то, что объект был одновременно изменён другим потоком. Если один поток выполняет последовательность вызовов методов, нарушающих контракт объекта, объект может бросить это исключение. Например, если поток изменяет коллекцию напрямую, в то время как он итерируется по коллекции с быстродействующим итератором, итератор бросит это исключение.
Обратите внимание, что быстродействие не гарантируется, так как, как правило, невозможно дать какие-либо гарантированные гарантии при одновременном изменении без синхронизации. Операции с быстродействием выбрасывают ConcurrentModificationException на основе наилучшего усилия. Поэтому было бы неправильно писать программу, зависящую от этого исключения для корректности: ConcurrentModificationException должно использоваться только для обнаружения ошибок.
- С момента:
- 1.2
- См. также:
-
Collection,Iterator,Spliterator,ListIterator,Vector,LinkedList,HashSet,Hashtable,TreeMap,AbstractList, Сериализованная форма
Конструкторы
| Конструктор и описание |
|---|
ConcurrentModificationException() Создаёт ConcurrentModificationException без сообщения об ошибке. |
ConcurrentModificationException(String message) Создаёт |
ConcurrentModificationException(String message,
Throwable cause) Создаёт новое исключение со специфицированным сообщением об ошибке и причиной. |
ConcurrentModificationException(Throwable cause) Создаёт новое исключение со специфицированной причиной и сообщением об ошибке |
Методы
Методы, унаследованные от класса java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
Методы, унаследованные от класса java.lang.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
© 1993, 2020, 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.