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 子类Throwable的任何子类RuntimeException都被视为已检查的异常。

两个子类 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 采用可用于生成详细信息消息的参数。 此外,可能具有关联原因的子类应该再有两个构造函数,一个 Throwable 采用 (原因) ,另一个 String 采用 (详细信息消息) , Throwable (原因) 。

在 1.0 中添加。

java.lang.ThrowableJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

Throwable()

构造一个新的可引发项,并将其 null 作为其详细信息消息。

Throwable(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

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 语言中所有错误和异常的超类。

适用于