Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ConcurrentModificationException extends RuntimeException
Например, не обычно допустимо для одного потока изменить Набор, в то время как другой поток выполняет итерации по этому. Вообще, результаты итерации неопределены при этих обстоятельствах. Некоторые реализации Iterator (включая таковые из всех реализаций набора общего назначения, обеспеченных JRE), могут хотеть выдавать это исключение, если это поведение обнаруживается. Iterators, которые делают это, известны как сбой быстро iterators, поскольку они перестали работать быстро и чисто, скорее тот риск произвольное, недетерминированное поведение в неопределенное время в будущем.
Отметьте, что это исключение не всегда указывает, что объект был одновременно изменен различным потоком. Если единственный поток выпускает последовательность вызовов метода, которая нарушает контракт объекта, объект может выдать это исключение. Например, если поток изменит набор непосредственно, в то время как он выполняет итерации по набору со сбоем быстро iterator, то iterator выдаст это исключение.
Отметьте, что поведение сбоя быстро не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Бросок операций сбоя быстро ConcurrentModificationException
на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: ConcurrentModificationException
должен использоваться только, чтобы обнаружить ошибки.
Collection
, Iterator
, ListIterator
, Vector
, LinkedList
, HashSet
, Hashtable
, TreeMap
, AbstractList
, Сериализированная ФормаКонструктор и Описание |
---|
ConcurrentModificationException()
Создает ConcurrentModificationException без сообщения детали.
|
ConcurrentModificationException(String message)
Конструкции a
ConcurrentModificationException с указанным сообщением детали. |
ConcurrentModificationException(String message, Throwable cause)
Создает новое исключение с указанным сообщением детали и причиной.
|
ConcurrentModificationException(Throwable cause)
Создает новое исключение с указанной причиной и сообщением детали
(cause==null ? null : cause.toString()) (который обычно содержит класс и сообщение детали cause . |
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
public ConcurrentModificationException()
public ConcurrentModificationException(String message)
ConcurrentModificationException
с указанным сообщением детали.message
- сообщение детали, имеющее отношение к этому исключению.public ConcurrentModificationException(Throwable cause)
(cause==null ? null : cause.toString())
(который обычно содержит класс и сообщение детали cause
.cause
- причина (который сохраняется для более позднего извлечения Throwable.getCause()
метод). (A null
значение разрешается, и указывает, что причина является несуществующей или неизвестной.)public ConcurrentModificationException(String message, Throwable cause)
Отметьте что сообщение детали, связанное с cause
автоматически не включается в сообщение детали этого исключения.
message
- сообщение детали (который сохраняется для более позднего извлечения Throwable.getMessage()
метод).cause
- причина (который сохраняется для более позднего извлечения Throwable.getCause()
метод). (A null
значение разрешается, и указывает, что причина является несуществующей или неизвестной.)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.