Most visited

Recently visited

Added in API level 1

ConcurrentModificationException

public class ConcurrentModificationException
extends RuntimeException

java.lang.Object
   ↳ java.lang.Throwable
     ↳ java.lang.Exception
       ↳ java.lang.RuntimeException
         ↳ java.util.ConcurrentModificationException


当这种修改不被允许时,可能会由检测到对象的并发修改的方法引发此异常。

例如,一个线程在另一个线程遍历它时修改一个集合通常是不允许的。 一般来说,在这些情况下迭代的结果是不确定的。 某些迭代器实现(包括由JRE提供的所有通用集合实现的实现)可能会选择在检测到此行为时抛出此异常。 这样做的迭代器被称为快速迭代器,因为它们快速且干净地失败,而在将来未定的时间冒着任意的,非确定性的行为冒险。

请注意,这个异常并不总是表示一个对象已被另一个线程同时修改。 如果单个线程发出违反对象合约的一系列方法调用,则该对象可能会抛出此异常。 例如,如果一个线程在使用快速迭代器迭代集合的同时直接修改集合,迭代器将抛出此异常。

请注意,无法保证故障快速行为,因为一般来说,在出现未同步的并发修改时不可能做出任何硬性保证。 ConcurrentModificationException的快速失败操作会ConcurrentModificationException 因此,编写一个依赖于此异常的程序是正确的: ConcurrentModificationException应仅用于检测错误。

也可以看看:

Summary

Public constructors

ConcurrentModificationException()

构造没有详细消息的ConcurrentModificationException。

ConcurrentModificationException(String message)

用指定的详细信息构造一个 ConcurrentModificationException

ConcurrentModificationException(Throwable cause)

构造具有指定的原因和详细消息的新异常 (cause==null ? null : cause.toString()) (它通常包含的类和详细消息 cause

ConcurrentModificationException(String message, Throwable cause)

用指定的详细信息和原因构造一个新的异常。

Inherited methods

From class java.lang.Throwable
From class java.lang.Object

Public constructors

ConcurrentModificationException

Added in API level 1
ConcurrentModificationException ()

构造没有详细消息的ConcurrentModificationException。

ConcurrentModificationException

Added in API level 1
ConcurrentModificationException (String message)

用指定的详细信息构造一个 ConcurrentModificationException

Parameters
message String: the detail message pertaining to this exception.

ConcurrentModificationException

Added in API level 19
ConcurrentModificationException (Throwable cause)

构造具有指定的原因和详细消息的新异常 (cause==null ? null : cause.toString()) (它通常包含的类和详细消息 cause

Parameters
cause Throwable: the cause (which is saved for later retrieval by the getCause() method). (A null value is permitted, and indicates that the cause is nonexistent or unknown.)

ConcurrentModificationException

Added in API level 19
ConcurrentModificationException (String message, 
                Throwable cause)

用指定的详细信息和原因构造一个新的异常。

请注意,与 cause相关的详细消息 不会自动包含在此例外的详细消息中。

Parameters
message String: the detail message (which is saved for later retrieval by the getMessage() method).
cause Throwable: the cause (which is saved for later retrieval by the getCause() method). (A null value is permitted, and indicates that the cause is nonexistent or unknown.)

Hooray!