JavaTM 2 Platform
Standard Ed. 6

java.util
類別 ConcurrentModificationException

java.lang.Object
  繼承者 java.lang.Throwable
      繼承者 java.lang.Exception
          繼承者 java.lang.RuntimeException
              繼承者 java.util.ConcurrentModificationException
所有已實作的介面:
Serializable

public class ConcurrentModificationException
extends RuntimeException

當方法檢測到物件的共時修改,但不允許這種修改時,拋出此異常。

例如,某個執行緒在 Collection 上進行迭代時,通常不允許另一個線性修改該 Collection。通常在這些情況下,迭代的結果是不確定的。如果檢測到這種行為,一些迭代器實作(包括 JRE 提供的所有通用 collection 實作)可能選擇拋出此異常。執行該操作的迭代器稱為快速失敗 迭代器,因為迭代器很快就完全失敗,而不會冒著在將來某個時間任意發生不確定行為的風險。

注意,此異常不會始終指出物件已經由不同 執行緒共時修改。如果單執行緒發出違反物件協定的方法調用序列,則該物件可能拋出此異常。例如,如果執行緒使用快速失敗迭代器在 collection 上迭代時直接修改該 collection,則迭代器將拋出此異常。

注意,迭代器的快速失敗行為無法得到保證,因為一般來說,不可能對是否出現不同步共時修改做出任何硬性保證。快速失敗操作會盡最大努力拋出 ConcurrentModificationException。因此,為提高此類別操作的正確性而編寫一個依賴於此異常的程序是錯誤的做法,正確做法是:ConcurrentModificationException 應該僅用於檢測 bug。

從以下版本開始:
1.2
另請參見:
Collection, Iterator, ListIterator, Vector, LinkedList, HashSet, Hashtable, TreeMap, AbstractList, 序列化表格

建構子摘要
ConcurrentModificationException()
          建構不帶詳細訊息的 ConcurrentModificationException。
ConcurrentModificationException(String message)
          建構帶指定詳細訊息的 ConcurrentModificationException
 
方法摘要
 
從類別 java.lang.Throwable 繼承的方法
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

ConcurrentModificationException

public ConcurrentModificationException()
建構不帶詳細訊息的 ConcurrentModificationException。


ConcurrentModificationException

public ConcurrentModificationException(String message)
建構帶指定詳細訊息的 ConcurrentModificationException

參數:
message - 和該異常有關的詳細訊息。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only