クラスConcurrentModificationException
- すべての実装されたインタフェース:
Serializable
- 直系の既知のサブクラス:
DirectoryIteratorException
たとえば、あるスレッドがCollectionで反復処理を行っている間に、別のスレッドがそのCollectionを変更することは一般に許可されません。 通常、そのような環境では、反復処理の結果は保証されません。 いくつかのイテレータ(Iterator)の実装(JREが提供するすべての一般的な目的のコレクションの実装の、イテレータの実装を含む)は、その動作が検出された場合にこの例外をスローすることを選択できます。 この例外をスローするイテレータは、フェイルファスト・イテレータと呼ばれます。イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
この例外は、オブジェクトが別のスレッドによって並行して更新されていないことを必ずしも示しているわけではありません。 単一のスレッドが、オブジェクトの規約に違反する一連のメソッドを発行した場合、オブジェクトはこの例外をスローします。 たとえば、フェイルファスト・イテレータを持つコレクションの反復処理を行いながら、スレッドがコレクションを直接修正する場合、イテレータはこの例外をスローします。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、フェイルファストの動作を保証することはできません。 フェイルファスト・オペレーションは最善努力原則に基づき、ConcurrentModificationExceptionをスローします。 したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。ConcurrentModificationExceptionはバグを検出するためにのみ使用すべきです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明詳細メッセージを指定しないでConcurrentModificationExceptionを構築します。ConcurrentModificationException(String message) 指定された詳細メッセージを持つConcurrentModificationExceptionを構築します。ConcurrentModificationException(String message, Throwable cause) 指定された詳細メッセージおよび原因を使用して新規例外を構築します。指定された原因と詳細メッセージ((cause==null ? null : cause.toString()))を持つ新しい例外を構築します(通常、クラスとcauseの詳細メッセージを含みます)。 -
メソッドのサマリー
Throwableクラスで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString修飾子と型メソッド説明final voidaddSuppressed(Throwable exception) この例外を提供する目的で抑制された例外に、指定された例外を追加します。実行スタック・トレースを埋め込みます。getCause()このスロー可能オブジェクトの原因を返しますが、原因が存在しないか不明な場合はnullを返します。このスロー可能オブジェクトの、ローカライズされた記述を作成します。このスロー可能オブジェクトの詳細メッセージ文字列を返します。Throwable.printStackTrace()によって出力されるスタック・トレース情報にプログラムでアクセスできるようにします。final Throwable[]この例外を提供する目的で(通常try-with-resources文によって)抑制された例外をすべて含む配列を返します。このスロー可能オブジェクトの原因を、指定された値に初期化します。voidこのスロー可能オブジェクトおよびそのバックトレースを標準エラー・ストリームに出力します。voidこのスロー可能オブジェクトとそのバックトレースを指定された印刷ストリームに出力します。voidこのスロー可能オブジェクトとそのバックトレースを指定されたプリント・ライターに出力します。voidsetStackTrace(StackTraceElement[] stackTrace) Throwable.getStackTrace()によって返され、Throwable.printStackTrace()と関連メソッドによって出力される、スタック・トレース要素を設定します。toString()このスロー可能オブジェクトの短い記述を返します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
ConcurrentModificationException
public ConcurrentModificationException()詳細メッセージを指定しないでConcurrentModificationExceptionを構築します。 -
ConcurrentModificationException
public ConcurrentModificationException(String message) 指定された詳細メッセージを持つConcurrentModificationExceptionを構築します。- パラメータ:
message- この例外に関連する詳細メッセージ。
-
ConcurrentModificationException
public ConcurrentModificationException(Throwable cause) 指定された原因と詳細メッセージ((cause==null ? null : cause.toString()))を持つ新しい例外を構築します(通常、クラスとcauseの詳細メッセージを含みます)。- パラメータ:
cause- 原因(あとでThrowable.getCause()メソッドで取得できるように保存される)。 (null値が許可されており、原因が存在しないか不明であることを示す。)- 導入されたバージョン:
- 1.7
-
ConcurrentModificationException
指定された詳細メッセージおよび原因を使用して新規例外を構築します。causeと関連付けられた詳細メッセージが、この例外の詳細メッセージに自動的に統合されることはありません。- パラメータ:
message- 詳細メッセージ(あとでThrowable.getMessage()メソッドで取得できるように保存される)。cause- 原因(あとでThrowable.getCause()メソッドで取得できるように保存される)。 (null値が許可されており、原因が存在しないか不明であることを示す。)- 導入されたバージョン:
- 1.7
-