public class ConcurrentModificationException extends RuntimeException
たとえば、あるスレッドがCollectionで反復処理を行っている間に、別のスレッドがそのCollectionを変更することは一般に許可されません。通常、そのような環境では、反復処理の結果は保証されません。いくつかのイテレータ(Iterator)の実装(JREが提供するすべての一般的な目的のコレクションの実装の、イテレータの実装を含む)は、その動作が検出された場合にこの例外をスローすることを選択できます。この例外をスローするイテレータは、フェイルファストイテレータと呼ばれます。イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
この例外は、オブジェクトが別のスレッドによって並行して更新されていないことを必ずしも示しているわけではありません。単一のスレッドが、オブジェクトの規約に違反する一連のメソッドを発行した場合、オブジェクトはこの例外をスローします。たとえば、フェイルファスト・イテレータを持つコレクションの反復処理を行いながら、スレッドがコレクションを直接修正する場合、イテレータはこの例外をスローします。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、フェイルファストの動作を保証することはできません。フェイルファスト・オペレーションは最善努力原則に基づき、ConcurrentModificationException
をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。ConcurrentModificationException
はバグを検出するためにのみ使用すべきです。
Collection
, Iterator
, Spliterator
, ListIterator
, Vector
, LinkedList
, HashSet
, Hashtable
, TreeMap
, AbstractList
, Serialized Formコンストラクタと説明 |
---|
ConcurrentModificationException()
詳細メッセージを指定しないでConcurrentModificationExceptionを構築します。
|
ConcurrentModificationException(String message)
指定された詳細メッセージを持つ
ConcurrentModificationException を構築します。 |
ConcurrentModificationException(String message, Throwable cause)
指定された詳細メッセージおよび原因を使用して新規例外を構築します。
|
ConcurrentModificationException(Throwable cause)
指定された原因と詳細メッセージ(
(cause==null ? null : cause.toString()) )を持つ新しい例外を構築します(通常、クラスとcause の詳細メッセージを含みます)。 |
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
public ConcurrentModificationException()
public ConcurrentModificationException(String message)
ConcurrentModificationException
を構築します。message
- この例外に関連する詳細メッセージ。public ConcurrentModificationException(Throwable cause)
(cause==null ? null : cause.toString())
)を持つ新しい例外を構築します(通常、クラスとcause
の詳細メッセージを含みます)。cause
- 原因(あとでThrowable.getCause()
メソッドで取得できるように保存される)。(null
値が許可されており、原因が存在しないか不明であることを示す。)public ConcurrentModificationException(String message, Throwable cause)
cause
と関連付けられた詳細メッセージが、この例外の詳細メッセージに自動的に統合されることはありません。
message
- 詳細メッセージ(あとでThrowable.getMessage()
メソッドで取得できるように保存される)。cause
- 原因(あとでThrowable.getCause()
メソッドで取得できるように保存される)。(null
値が許可されており、原因が存在しないか不明であることを示す。) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.