Share via


Throwable 類別

定義

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

[Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)]
public class Throwable : Exception, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)>]
type Throwable = class
    inherit Exception
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ISerializable
繼承
Throwable
衍生
屬性
實作

備註

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。 只有屬於這個類別實例的物件 (或其子類別之一,) 是由 JAVA 虛擬機器擲回,也可以由 JAVA throw 語句擲回。 同樣地,只有這個類別或其子類別之一可以是 子句中的 catch 引數類型。

為了進行例外狀況的編譯時間檢查, Throwable 以及任何子類別不是 或 Error 的子類別 ThrowableRuntimeException ,都會被視為已檢查的例外狀況。

兩個子類別 java.lang.Errorjava.lang.Exception 的實例通常會用來指出發生例外狀況。 這些實例通常會在例外狀況的內容中重新建立,以便包含相關資訊 (,例如堆疊追蹤資料) 。

可擲回的 包含其執行緒在建立時執行堆疊的快照集。 它也可以包含訊息字串,以提供錯誤的詳細資訊。 經過一段時間後,可擲回的可以擲回的#addSuppressed 會隱藏其他可擲回的可擲回專案無法傳播。 最後,可擲回也可以包含 原因:另一個可擲回會導致建構這個可擲回的 。 此因果資訊的記錄稱為 鏈結例外 狀況設施,因為原因可以、本身、原因等等,導致另一個例外狀況的「鏈結」。

擲回的其中一個原因可能是擲回它的類別是建置在較低層抽象概念之上,而上層上的作業因為較低層中的失敗而失敗。 讓下層擲回的擲回會向外傳播,因為通常與上層所提供的抽象概念無關,所以設計會很差。 此外,這麼做會將上層的 API 系結至其實作的詳細資料,假設較低層的例外狀況是已檢查的例外狀況。 擲回「包裝例外狀況」 (亦即,包含原因的例外狀況) 允許上層將失敗的詳細資料傳達給呼叫端,而不會產生上述任一缺點。 它會保留變更上層實作的彈性,而不需要變更其 API (,其方法所擲回的例外狀況集) 。

可擲回的第二個原因可能是擲回的方法必須符合不允許方法直接擲回原因的一般用途介面。 例如,假設永續性集合符合 java.util.Collection Collection 介面,且其持續性會實作在 上 java.io 。 假設 方法的內部 add 可以擲回 java.io.IOException IOException 。 實作可以將 的詳細 IOException 資料與呼叫端通訊,同時將 包裝 IOException 在適當的未核取例外狀況中,以符合 Collection 介面。 (永續性集合的規格應該指出它能夠擲回這類例外狀況。)

原因可以透過兩種方式與可擲回的關聯:透過採用原因做為引數的建構函式,或透過 #initCause(Throwable) 方法。 想要讓原因與其相關聯的新可擲回類別應該提供採用原因的建構函式,並將 (可能間接) 委派給其中一個採用原因的 Throwable 建構函式。

initCause因為方法是公用的,所以它允許與任何可擲回的原因相關聯,即使是實作會預先將例外狀況鏈結機制新增至 的「舊版可擲回 Throwable 」。

根據慣例,類別 Throwable 及其子類別有兩個建構函式,一個採用無引數,另一個 String 採用可用來產生詳細訊息的引數。 此外,可能具有關聯原因的子類別應該有兩個以上的建構函式、一個採用 (原因) ,另一個會採用 ThrowableString 詳細資料訊息) (,以及 Throwable (原因) 。

已在 1.0 中新增。

java.lang.Throwable JAVA 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。

建構函式

Throwable()

建構可擲回的新 , null 做為其詳細訊息。

Throwable(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 標記法時所使用的建構函式;由執行時間呼叫。

Throwable(String)

使用指定的詳細資料訊息建構可擲回的新 。

Throwable(String, Throwable)

使用指定的詳細資料訊息和原因建構新的可擲回專案。

Throwable(String, Throwable, Boolean, Boolean)

使用指定的詳細資料訊息、原因、#addSuppressed 隱藏啟用或停用,以及啟用或停用可寫入堆疊追蹤來建構新的可擲回專案。

Throwable(Throwable)

使用指定的原因和 (的詳細訊息 (cause==null ? null : cause.toString()) ,建構新的可擲回,其通常包含) 的 cause 類別和詳細資料訊息。

欄位

is_generated

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

屬性

Cause

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

Class

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

Handle

基礎 Android 實例的控制碼。

JniIdentityHashCode

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

JniPeerMembers

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

LocalizedMessage

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

Message

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

PeerReference

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

StackTrace

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

ThresholdClass

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

ThresholdType

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

方法

AddSuppressed(Throwable)

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

Dispose()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

Dispose(Boolean)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

FillInStackTrace()

填入執行堆疊追蹤。

Finalize()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

FromException(Exception)

Exception 轉換成 Throwable

GetStackTrace()

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

GetSuppressed()

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

InitCause(Throwable)

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

PrintStackTrace()

列印這個可擲回的 ,並將其回溯到標準錯誤資料流程。

PrintStackTrace(PrintStream)

列印這個可擲回的 ,以及其回溯至指定的列印資料流程。

PrintStackTrace(PrintWriter)

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

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

SetStackTrace(StackTraceElement[])

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

ToException(Throwable)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

ToString()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

UnregisterFromRuntime()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

明確介面實作

IJavaPeerable.Disposed()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

IJavaPeerable.DisposeUnlessReferenced()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

IJavaPeerable.Finalized()

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

IJavaPeerable.JniManagedPeerState

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

IJavaPeerable.SetJniIdentityHashCode(Int32)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

IJavaPeerable.SetPeerReference(JniObjectReference)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

擴充方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

GetJniTypeName(IJavaPeerable)

類別 Throwable 是 JAVA 語言中所有錯誤和例外狀況的超類別。

適用於