ConcurrentModificationException 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当不允许进行此类修改时,检测到对象的并发修改的方法可能会引发此异常。
[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 应仅用于检测 bug。
已在 1.2 中添加。
适用于 . 的 java.util.ConcurrentModificationExceptionJava 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
| ConcurrentModificationException() |
构造无详细信息消息的 ConcurrentModificationException。 |
| ConcurrentModificationException(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
| ConcurrentModificationException(String) |
使用指定的详细信息消息构造 a |
| 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 for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for 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) |
当不允许进行此类修改时,检测到对象的并发修改的方法可能会引发此异常。 |