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 应仅用于检测 bug。

已在 1.2 中添加。

适用于 . 的 java.util.ConcurrentModificationExceptionJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

ConcurrentModificationException()

构造无详细信息消息的 ConcurrentModificationException。

ConcurrentModificationException(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

ConcurrentModificationException(String)

使用指定的详细信息消息构造 a 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 for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for 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)

当不允许进行此类修改时,检测到对象的并发修改的方法可能会引发此异常。

适用于