語言

TransactionTooLargeException 類別

定義

Binder 交易失敗,因為它太大。

[Android.Runtime.Register("android/os/TransactionTooLargeException", DoNotGenerateAcw=true)]
public class TransactionTooLargeException : Android.OS.RemoteException
[<Android.Runtime.Register("android/os/TransactionTooLargeException", DoNotGenerateAcw=true)>]
type TransactionTooLargeException = class
    inherit RemoteException
繼承
屬性

備註

Binder 交易失敗,因為它太大。

在遠端過程調用期間,自變數和呼叫的傳回值會傳送為 Parcel 儲存在 Binder 交易緩衝區中的物件。 如果自變數或傳回值太大而無法放入交易緩衝區中,則呼叫將會失敗。 TransactionTooLargeException 當交易很大且失敗時,會擲回為啟發學習法,因為這些交易最有可能超過交易緩衝區。

Binder 交易緩衝區的固定大小有限,目前為 1MB,由進程進行中所有交易共用。 因此,當有許多交易進行中時,即使大部分個別交易的大小適中時,也會擲回此例外狀況。

遠程過程調用擲回 TransactionTooLargeException時,有兩個可能的結果。 用戶端無法將其要求傳送至服務(最有可能是自變數太大而無法放入交易緩衝區),或者服務無法將其回應傳回用戶端(如果傳回值太大而無法放入交易緩衝區中)。 無法分辨出實際發生的結果之一。 用戶端應該假設發生部分失敗。

避免 TransactionTooLargeException 的關鍵是讓所有交易保持相對較小的狀態。 嘗試將建立 Parcel 自變數所需的記憶體數量降到最低,以及遠端過程調用的傳回值。 避免傳輸大量字串或大型點陣陣圖數位。 可能的話,請嘗試將大型要求分成較小的部分。

如果你正在實作一項服務,對客戶端可執行的查詢施加大小或複雜度限制可能會有幫助。 例如,如果結果集可能會變大,則不允許用戶端一次要求多個記錄。 或者,不要一次傳回所有可用的數據,而是先傳回基本資訊,並視需要讓用戶端要求其他資訊。

的 android.os.TransactionTooLargeExceptionJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

名稱 Description
TransactionTooLargeException()

初始化一個新的 TransactionTooLargeException 類別實例。

TransactionTooLargeException(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

TransactionTooLargeException(String)

初始化一個新的 TransactionTooLargeException 類別實例。

欄位

名稱 Description
is_generated

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

(繼承來源 Throwable)

屬性

名稱 Description
Cause

傳回這個可擲回的原因,如果 null 原因不存在或未知,則為 。

(繼承來源 Throwable)
Class

取得這個丟棄物的執行時類別。

(繼承來源 Throwable)
Handle

基礎Android實例的句柄。

(繼承來源 Throwable)
JavaStackTrace

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Throwable)
JniManagedPeerState

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
JniPeerMembers

提供此類型的 JNI 同儕成員元資料。

LocalizedMessage

建立這個可擲回的當地語系化描述。

(繼承來源 Throwable)
Message

傳回這個可擲回的詳細訊息字串。

(繼承來源 Throwable)
PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Throwable)
StackTrace

會得到這個丟棄物堆疊追蹤的字串表示。

(繼承來源 Throwable)
ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

方法

名稱 Description
AddSuppressed(Throwable)

將指定的例外狀況附加至隱藏的例外狀況,以傳遞此例外狀況。

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

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
Dispose()

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

(繼承來源 Throwable)
Dispose(Boolean)

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

(繼承來源 Throwable)
DisposeUnlessReferenced()

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
Equals(Object)

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
FillInStackTrace()

填入執行堆疊追蹤。

(繼承來源 Throwable)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 JavaException)
GetStackTrace()

提供以程式設計方式存取 所 #printStackTrace()列印的堆疊追蹤資訊。

(繼承來源 Throwable)
GetSuppressed()

傳回陣列,其中包含隱藏的所有例外狀況,通常是由 try-with-resources 語句,以便傳遞此例外狀況。

(繼承來源 Throwable)
InitCause(Throwable)

初始化這個可擲回至指定值的原因。

(繼承來源 Throwable)
PrintStackTrace()

列印這個可擲回的 ,以及其回溯至標準錯誤數據流。

(繼承來源 Throwable)
PrintStackTrace(PrintStream)

列印這個可擲回的 ,並將其回溯到指定的列印數據流。

(繼承來源 Throwable)
PrintStackTrace(PrintWriter)

列印這個可擲回的 ,並將其回溯到指定的列印寫入器。

(繼承來源 Throwable)
RethrowAsRuntimeException()

將此重新擲回為未核取的運行時間例外狀況。

(繼承來源 RemoteException)
RethrowFromSystemServer()

當我們知道它來自系統伺服器時,請重新擲回此例外狀況。

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

設定 Handle 屬性。

(繼承來源 Throwable)
SetJavaStackTrace(JniObjectReference)

Binder 交易失敗,因為它太大。

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

Binder 交易失敗,因為它太大。

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

設定堆疊追蹤專案,這些專案將由和相關方法所傳回 #getStackTrace() 和列印 #printStackTrace() 。

(繼承來源 Throwable)
ToString()

將此值轉換為字串。

(繼承來源 Throwable)
UnregisterFromRuntime()

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

(繼承來源 Throwable)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
IJavaPeerable.Finalized()

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
IJavaPeerable.JniObjectReferenceControlBlock

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)
IJavaPeerable.SetPeerReference(JniObjectReference)

Binder 交易失敗,因為它太大。

(繼承來源 JavaException)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

Binder 交易失敗,因為它太大。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於