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
- Наследование
- Производный
- Атрибуты
Комментарии
Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается.
Например, обычно это не допускается для одного потока для изменения коллекции, а другой поток выполняет итерацию по нему. Как правило, результаты итерации не определены в этих обстоятельствах. Некоторые реализации итератора (включая те из всех реализаций коллекции общего назначения, предоставляемых JRE), могут вызвать это исключение, если это поведение обнаружено. Итераторы, которые делают это, называются итераторами без сбоя, так как они быстро и чисто завершаются ошибкой, а рисковать произвольным, недетерминированным поведением в будущем.
Обратите внимание, что это исключение не всегда означает, что объект был одновременно изменен другим потоком. Если один поток выдает последовательность вызовов метода, которые нарушают контракт объекта, объект может вызвать это исключение. Например, если поток изменяет коллекцию непосредственно во время итерации по коллекции с помощью итератора с ошибкой, итератор вызовет это исключение.
Обратите внимание, что не удается гарантировать быстрое поведение, как правило, невозможно сделать какие-либо жесткие гарантии в присутствии несинхронизированных одновременных изменений. Операции, выполняемые сбоем, создаются ConcurrentModificationException
на основе лучших усилий. Поэтому было бы неправильно написать программу, которая зависит от этого исключения для его правильности: ConcurrentModificationException
следует использовать только для обнаружения ошибок.
Добавлено в версии 1.2.
Документация по Java для java.util.ConcurrentModificationException
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
ConcurrentModificationException() |
Создает значение ConcurrentModificationException без подробных сообщений. |
ConcurrentModificationException(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
ConcurrentModificationException(String) |
Создает сообщение |
ConcurrentModificationException(String, Throwable) |
Создает новое исключение с указанным сообщением подробностей и причиной. |
ConcurrentModificationException(Throwable) |
Создает новое исключение с указанной причиной и подробным сообщением |
Поля
is_generated |
Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается. (Унаследовано от Throwable) |
Свойства
Cause |
Возвращает причину этого бросаемого |
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() |
Предоставляет программный доступ к сведениям трассировки стека, напечатанным |
GetSuppressed() |
Возвращает массив, содержащий все исключения, которые были подавлены оператором |
InitCause(Throwable) |
Инициализирует причину этого бросаемого значения в указанное значение. (Унаследовано от Throwable) |
PrintStackTrace() |
Выводит этот бросаемый объект и его обратную откат к стандартному потоку ошибок. (Унаследовано от Throwable) |
PrintStackTrace(PrintStream) |
Печатает этот бросаемый объект и его обратный вывод в указанный поток печати. (Унаследовано от Throwable) |
PrintStackTrace(PrintWriter) |
Печатает этот бросаемый объект и его обратный вывод в указанный модуль записи печати. (Унаследовано от Throwable) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Throwable) |
SetStackTrace(StackTraceElement[]) |
Задает элементы трассировки стека, возвращаемые и печатаемые |
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) |
Это исключение может быть вызвано методами, которые обнаружили параллельное изменение объекта, если такое изменение не допускается. |