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
- 繼承
- 衍生
- 屬性
備註
當該修改不被允許時,方法可能會偵測到物件同時修改。
例如,通常不允許一個執行緒在另一個執行緒迭代該集合時修改該集合。 一般而言,迭代結果在此情況下未定義。 部分迭代器實作(包括 JRE 提供的所有通用收集實作)若偵測到此行為,可能會選擇拋出此例外。 執行此操作的迭代器稱為 失效快速 迭代器,因為它們失敗迅速且乾淨利落,而非冒著在未來某個未知時刻出現任意且非確定性行為的風險。
請注意,此例外不一定表示物件已被 其他 執行緒同時修改。 如果單一執行緒發出一連串的方法調用,違反物件的合約,該物件可能會拋出此例外。 例如,如果執行緒在用失敗快速迭代器迭代該集合時直接修改該集合,迭代器會拋出此例外。
請注意,失效快速行為無法保證,因為一般而言,在存在非同步的並行修改時,無法做出任何硬性保證。 失敗快速的操作 ConcurrentModificationException 是盡力而為。 因此,撰寫依賴此例外來判斷正確性的程式是錯誤的:應僅用於偵測錯誤。ConcurrentModificationException
在 1.2 版本中加入。
的 java.util.ConcurrentModificationExceptionJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| ConcurrentModificationException() |
建構一個 ConcurrentModificationException,且無詳細訊息。 |
| ConcurrentModificationException(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
| ConcurrentModificationException(String, Throwable) |
建立一個包含指定詳細訊息與原因的新例外。 |
| ConcurrentModificationException(String) |
構造包含指定細節訊息的 a |
| ConcurrentModificationException(Throwable) |
構造一個新的例外,包含指定的原因及 的 |
欄位
| 名稱 | Description |
|---|---|
| is_generated |
表示此投擲物是否由綁定產生。 (繼承來源 Throwable) |
屬性
| 名稱 | Description |
|---|---|
| Cause |
回傳此擲物的原因,或 |
| Class |
取得這個丟棄物的執行時類別。 (繼承來源 Throwable) |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Throwable) |
| JavaStackTrace |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Throwable) |
| JniManagedPeerState |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| JniPeerMembers |
當該修改不被允許時,方法可能會偵測到物件同時修改。 |
| LocalizedMessage |
建立這個投擲物的在地描述。 (繼承來源 Throwable) |
| Message |
回傳此投擲物的詳細訊息字串。 (繼承來源 Throwable) |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Throwable) |
| StackTrace |
會得到這個丟棄物堆疊追蹤的字串表示。 (繼承來源 Throwable) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| IJavaPeerable.Finalized() |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| IJavaPeerable.JniObjectReferenceControlBlock |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
當該修改不被允許時,方法可能會偵測到物件同時修改。 (繼承來源 JavaException) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
當該修改不被允許時,方法可能會偵測到物件同時修改。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |