|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.util.ConcurrentModificationException
public class ConcurrentModificationException
當方法檢測到物件的共時修改,但不允許這種修改時,拋出此異常。
例如,某個執行緒在 Collection 上進行迭代時,通常不允許另一個線性修改該 Collection。通常在這些情況下,迭代的結果是不確定的。如果檢測到這種行為,一些迭代器實作(包括 JRE 提供的所有通用 collection 實作)可能選擇拋出此異常。執行該操作的迭代器稱為快速失敗 迭代器,因為迭代器很快就完全失敗,而不會冒著在將來某個時間任意發生不確定行為的風險。
注意,此異常不會始終指出物件已經由不同 執行緒共時修改。如果單執行緒發出違反物件協定的方法調用序列,則該物件可能拋出此異常。例如,如果執行緒使用快速失敗迭代器在 collection 上迭代時直接修改該 collection,則迭代器將拋出此異常。
注意,迭代器的快速失敗行為無法得到保證,因為一般來說,不可能對是否出現不同步共時修改做出任何硬性保證。快速失敗操作會盡最大努力拋出 ConcurrentModificationException。因此,為提高此類別操作的正確性而編寫一個依賴於此異常的程序是錯誤的做法,正確做法是:ConcurrentModificationException 應該僅用於檢測 bug。
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 |
建構子詳細資訊 |
---|
public ConcurrentModificationException()
public ConcurrentModificationException(String message)
message
- 和該異常有關的詳細訊息。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。