語言

ConcurrentModificationException 類別

定義

當該修改不被允許時,方法可能會偵測到物件同時修改。

[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
繼承
ConcurrentModificationException
衍生
屬性

備註

當該修改不被允許時,方法可能會偵測到物件同時修改。

例如,通常不允許一個執行緒在另一個執行緒迭代該集合時修改該集合。 一般而言,迭代結果在此情況下未定義。 部分迭代器實作(包括 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

ConcurrentModificationException(Throwable)

構造一個新的例外,包含指定的原因及 的 (cause==null ? null : cause.toString()) 詳細訊息(通常包含 的 cause類別與詳細訊息)。

欄位

名稱 Description
is_generated

表示此投擲物是否由綁定產生。

(繼承來源 Throwable)

屬性

名稱 Description
Cause

回傳此擲物的原因,或 null 是原因不存在或未知。

(繼承來源 Throwable)
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
AddSuppressed(Throwable)

將指定的例外附加於為提供此例外而被抑制的例外。

(繼承來源 Throwable)
Construct(JniObjectReference, JniObjectReferenceOptions)

當該修改不被允許時,方法可能會偵測到物件同時修改。

(繼承來源 JavaException)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Throwable)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Throwable)
DisposeUnlessReferenced()

當該修改不被允許時,方法可能會偵測到物件同時修改。

(繼承來源 JavaException)
Equals(Object)

當該修改不被允許時,方法可能會偵測到物件同時修改。

(繼承來源 JavaException)
FillInStackTrace()

填補執行堆疊的追蹤。

(繼承來源 Throwable)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 JavaException)
GetStackTrace()

提供程式化存取由 .#printStackTrace()

(繼承來源 Throwable)
GetSuppressed()

回傳一個陣列,包含所有被抑制的例外,通常透過 try-with-resources 陳述式來傳遞此例外。

(繼承來源 Throwable)
InitCause(Throwable)

將此拋擲 物的起因 初始化為指定的值。

(繼承來源 Throwable)
PrintStackTrace()

列印這個投擲物及其回溯到標準誤差串流。

(繼承來源 Throwable)
PrintStackTrace(PrintStream)

列印此投擲檔及其回溯至指定的列印串流。

(繼承來源 Throwable)
PrintStackTrace(PrintWriter)

列印此投擲檔及其回溯至指定的列印寫入器。

(繼承來源 Throwable)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Throwable)
SetJavaStackTrace(JniObjectReference)

當該修改不被允許時,方法可能會偵測到物件同時修改。

(繼承來源 JavaException)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

當該修改不被允許時,方法可能會偵測到物件同時修改。

(繼承來源 JavaException)
SetStackTrace(StackTraceElement[])

設定將由相關方法返回 #getStackTrace() 並列印 #printStackTrace() 的堆疊追蹤元素。

(繼承來源 Throwable)
ToString()

將此值轉換為字串。

(繼承來源 Throwable)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Throwable)

明確介面實作

名稱 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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

當該修改不被允許時,方法可能會偵測到物件同時修改。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於