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并且该异常的任何子类也不是任RuntimeException一子类Throwable,或者Error被视为已检查的异常。
两个子类的实例, 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, Boolean, Boolean) |
使用指定的详细信息消息、原因、#addSuppressed 抑制启用或禁用以及启用或禁用可写堆栈跟踪构造新的可引发项。 |
| Throwable(String, Throwable) |
使用指定的详细信息消息和原因构造新的可引发项。 |
| Throwable(String) |
使用指定的详细信息消息构造新的可引发项。 |
| 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) |
该 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
该 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |