ConcurrentModificationException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。
[Android.Runtime.Register("java/util/ConcurrentModificationException", DoNotGenerateAcw=true)]
public class ConcurrentModificationException : Java.Lang.RuntimeException
[<Android.Runtime.Register("java/util/ConcurrentModificationException", DoNotGenerateAcw=true)>]
type ConcurrentModificationException = class
inherit RuntimeException
- 繼承
- 衍生
- 屬性
備註
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。
例如,一個線程在逐一查看集合時,通常不允許一個線程修改集合。 一般而言,反覆項目的結果在這些情況下是未定義的。 某些 Iterator 實作(包括 JRE 所提供的所有一般用途集合實作的實作,如果偵測到此行為,可能會選擇擲回這個例外狀況。 執行這項操作的反覆運算器稱為 「失敗快速 反覆運算器」,因為它們會快速且乾淨地失敗,而是在未來不確定的時間冒著任意、不具決定性的行為的風險。
請注意,這個例外狀況不一定表示物件已由 不同的 線程同時修改。 如果單一線程發出違反物件合約的方法調用序列,物件可能會擲回這個例外狀況。 例如,如果線程在以失敗快速反覆運算器逐一查看集合時直接修改集合,反覆運算器將會擲回這個例外狀況。
請注意,無法保證快速失敗的行為,一般來說,不可能在未同步處理並行修改的情況下做出任何硬式保證。 快速作業會以最佳方式擲回 ConcurrentModificationException
。 因此,撰寫依賴此例外狀況的程序正確性是錯誤的: ConcurrentModificationException
應該只用來偵測 Bug。
已在1.2中新增。
的 java.util.ConcurrentModificationException
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
ConcurrentModificationException() |
建構沒有詳細訊息的 ConcurrentModificationException。 |
ConcurrentModificationException(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
ConcurrentModificationException(String) |
|
ConcurrentModificationException(String, Throwable) |
使用指定的詳細訊息和原因建構新的例外狀況。 |
ConcurrentModificationException(Throwable) |
使用指定的原因和的詳細數據訊息 |
欄位
is_generated |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
屬性
Cause |
傳回這個可擲回的原因,如果 |
Class |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
Handle |
基礎Android實例的句柄。 (繼承來源 Throwable) |
JniIdentityHashCode |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
JniPeerMembers |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 |
LocalizedMessage |
建立這個可擲回的當地語系化描述。 (繼承來源 Throwable) |
Message |
傳回這個可擲回的詳細訊息字串。 (繼承來源 Throwable) |
PeerReference |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
StackTrace |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
AddSuppressed(Throwable) |
將指定的例外狀況附加至隱藏的例外狀況,以傳遞此例外狀況。 (繼承來源 Throwable) |
Dispose() |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
Dispose(Boolean) |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
FillInStackTrace() |
填入執行堆疊追蹤。 (繼承來源 Throwable) |
GetStackTrace() |
提供以程式設計方式存取 所 |
GetSuppressed() |
傳回陣列,其中包含隱藏的所有例外狀況,通常是由 |
InitCause(Throwable) |
初始化這個可擲回至指定值的原因。 (繼承來源 Throwable) |
PrintStackTrace() |
列印這個可擲回的 ,以及其回溯至標準錯誤數據流。 (繼承來源 Throwable) |
PrintStackTrace(PrintStream) |
列印這個可擲回的 ,並將其回溯到指定的列印數據流。 (繼承來源 Throwable) |
PrintStackTrace(PrintWriter) |
列印這個可擲回的 ,並將其回溯到指定的列印寫入器。 (繼承來源 Throwable) |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Throwable) |
SetStackTrace(StackTraceElement[]) |
設定堆疊追蹤專案,這些專案將由和相關方法所傳回 |
ToString() |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
UnregisterFromRuntime() |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
明確介面實作
IJavaPeerable.Disposed() |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
IJavaPeerable.DisposeUnlessReferenced() |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
IJavaPeerable.Finalized() |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
IJavaPeerable.JniManagedPeerState |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 (繼承來源 Throwable) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 |
GetJniTypeName(IJavaPeerable) |
當不允許這類修改時,偵測到物件同時修改的方法可能會擲回這個例外狀況。 |