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 对象的托管表示形式时使用的构造函数;由运行时调用。 |
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) |
类 |