Поделиться через


ConcurrentModificationException Класс

Определение

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

[Android.Runtime.Register("java/util/ConcurrentModificationException", DoNotGenerateAcw=true)]
public class ConcurrentModificationException : Java.Lang.RuntimeException
[<Android.Runtime.Register("java/util/ConcurrentModificationException", DoNotGenerateAcw=true)>]
type ConcurrentModificationException = class
    inherit RuntimeException
Наследование
ConcurrentModificationException
Производный
Атрибуты

Комментарии

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

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

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

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

Добавлено в версии 1.2.

Документация по Java для java.util.ConcurrentModificationException.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

ConcurrentModificationException()

Создает значение ConcurrentModificationException без подробных сообщений.

ConcurrentModificationException(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

ConcurrentModificationException(String)

Создает сообщение ConcurrentModificationException с указанными сведениями.

ConcurrentModificationException(String, Throwable)

Создает новое исключение с указанным сообщением подробностей и причиной.

ConcurrentModificationException(Throwable)

Создает новое исключение с указанной причиной и подробным сообщением (cause==null ? null : cause.toString()) (который обычно содержит сообщение о классе и подробном сообщении cause.

Поля

is_generated

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)

Свойства

Cause

Возвращает причину этого бросаемого null или если причина не существует или неизвестна.

(Унаследовано от Throwable)
Class

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Throwable)
JniIdentityHashCode

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
JniPeerMembers

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

LocalizedMessage

Создает локализованное описание этого вызываемого объекта.

(Унаследовано от Throwable)
Message

Возвращает строку подробного сообщения этого вызываемого объекта.

(Унаследовано от Throwable)
PeerReference

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
StackTrace

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

AddSuppressed(Throwable)

Добавляет указанное исключение к исключениям, которые были отключены для доставки этого исключения.

(Унаследовано от Throwable)
Dispose()

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
Dispose(Boolean)

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
FillInStackTrace()

Заполняет трассировку стека выполнения.

(Унаследовано от Throwable)
GetStackTrace()

Предоставляет программный доступ к сведениям трассировки стека, напечатанным #printStackTrace().

(Унаследовано от Throwable)
GetSuppressed()

Возвращает массив, содержащий все исключения, которые были подавлены оператором try-with-resources для доставки этого исключения.

(Унаследовано от Throwable)
InitCause(Throwable)

Инициализирует причину этого бросаемого значения в указанное значение.

(Унаследовано от Throwable)
PrintStackTrace()

Выводит этот бросаемый объект и его обратную откат к стандартному потоку ошибок.

(Унаследовано от Throwable)
PrintStackTrace(PrintStream)

Печатает этот бросаемый объект и его обратный вывод в указанный поток печати.

(Унаследовано от Throwable)
PrintStackTrace(PrintWriter)

Печатает этот бросаемый объект и его обратный вывод в указанный модуль записи печати.

(Унаследовано от Throwable)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Throwable)
SetStackTrace(StackTraceElement[])

Задает элементы трассировки стека, возвращаемые и печатаемые #getStackTrace()#printStackTrace() и связанные методы.

(Унаследовано от Throwable)
ToString()

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
UnregisterFromRuntime()

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
IJavaPeerable.DisposeUnlessReferenced()

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
IJavaPeerable.Finalized()

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
IJavaPeerable.JniManagedPeerState

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)
IJavaPeerable.SetPeerReference(JniObjectReference)

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

(Унаследовано от Throwable)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

GetJniTypeName(IJavaPeerable)

Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.

Применяется к