Throwable 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
類別 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
的子類別 Throwable
RuntimeException
,都會被視為已檢查的例外狀況。
兩個子類別 java.lang.Error
和 java.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
採用可用來產生詳細訊息的引數。 此外,可能具有關聯原因的子類別應該有兩個以上的建構函式、一個採用 (原因) ,另一個會採用 Throwable
String
詳細資料訊息) (,以及 Throwable
(原因) 。
已在 1.0 中新增。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。
建構函式
Throwable() |
建構可擲回的新 , |
Throwable(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 標記法時所使用的建構函式;由執行時間呼叫。 |
Throwable(String) |
使用指定的詳細資料訊息建構可擲回的新 。 |
Throwable(String, Throwable) |
使用指定的詳細資料訊息和原因建構新的可擲回專案。 |
Throwable(String, Throwable, Boolean, Boolean) |
使用指定的詳細資料訊息、原因、#addSuppressed 隱藏啟用或停用,以及啟用或停用可寫入堆疊追蹤來建構新的可擲回專案。 |
Throwable(Throwable) |
使用指定的原因和 (的詳細訊息 |
欄位
is_generated |
類別 |
屬性
Cause |
傳回這個可 |
Class |
類別 |
Handle |
基礎 Android 實例的控制碼。 |
JniIdentityHashCode |
類別 |
JniPeerMembers |
類別 |
LocalizedMessage |
建立這個可擲回的當地語系化描述。 |
Message |
傳回這個可擲回的詳細訊息字串。 |
PeerReference |
類別 |
StackTrace |
類別 |
ThresholdClass |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。 |
ThresholdType |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。 |
方法
AddSuppressed(Throwable) |
將指定的例外狀況附加至隱藏的例外狀況,以提供此例外狀況。 |
Dispose() |
類別 |
Dispose(Boolean) |
類別 |
FillInStackTrace() |
填入執行堆疊追蹤。 |
Finalize() |
類別 |
FromException(Exception) | |
GetStackTrace() |
提供以程式設計方式存取 所 |
GetSuppressed() |
傳回陣列,其中包含所有已隱藏的例外狀況,通常是由 |
InitCause(Throwable) |
初始化這個可擲回至指定值 的原因 。 |
PrintStackTrace() |
列印這個可擲回的 ,並將其回溯到標準錯誤資料流程。 |
PrintStackTrace(PrintStream) |
列印這個可擲回的 ,以及其回溯至指定的列印資料流程。 |
PrintStackTrace(PrintWriter) |
列印這個可擲回的 ,並將其回溯列印至指定的列印寫入器。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 |
SetStackTrace(StackTraceElement[]) |
設定堆疊追蹤專案,這些專案將由 和 相關方法傳回 |
ToException(Throwable) |
類別 |
ToString() |
類別 |
UnregisterFromRuntime() |
類別 |
明確介面實作
IJavaPeerable.Disposed() |
類別 |
IJavaPeerable.DisposeUnlessReferenced() |
類別 |
IJavaPeerable.Finalized() |
類別 |
IJavaPeerable.JniManagedPeerState |
類別 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
類別 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
類別 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
類別 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
類別 |
GetJniTypeName(IJavaPeerable) |
類別 |