MatchException 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
引发以指示模式匹配中的意外失败。
[Android.Runtime.Register("java/lang/MatchException", ApiSince=36, DoNotGenerateAcw=true)]
public sealed class MatchException : Java.Lang.RuntimeException
[<Android.Runtime.Register("java/lang/MatchException", ApiSince=36, DoNotGenerateAcw=true)>]
type MatchException = class
inherit RuntimeException
- 继承
- 属性
注解
引发以指示模式匹配中的意外失败。
MatchException 当详尽的模式匹配语言构造(如 switch 表达式)遇到与运行时任何指定模式不匹配的值时,可能会引发,即使该构造被视为详尽无遗。 这是有意的,可能源于许多情况:
<ul><li>独立编译异常,其中模式引用引用的类型层次结构的各个部分已更改,但模式匹配构造尚未重新编译。 例如,如果密封接口在运行时具有与编译时允许的子类型不同的一组允许子类型,或者枚举类在运行时具有与编译时不同的枚举常量集,或者类型层次结构在编译时与运行时之间的某种不兼容方式发生更改。</li>
<包含密封类的 li>null 值和嵌套模式。 例如,如果接口Isealed具有两个允许的A子类,B并且记录类R具有一个类型的I单个组件,则两个记录模式R(A a)和R(B b)一起被视为类型详尽R,但这些模式都不会与结果new R(null)匹配。</li>
<li>null 值和嵌套记录模式。 给定具有类型S单个组件的记录类T,其中T另一个记录类具有类型单个分量String,则嵌套记录模式R(S(var s))被视为类型详尽R,但它与结果new R(null)不匹配(而它确实与结果new R(new S(null))匹配)。</li></ul>
MatchException 也可以由模式与模式匹配值的过程引发。 例如,涉及记录模式的模式匹配可能需要隐式调用访问器方法才能提取组件值。 如果其中任一访问器方法引发异常,则模式匹配会突然完成并引发 MatchException。 原始异常将设置为以下项之Throwable#getCause() cause一MatchException。 不会 Throwable#addSuppressed(java.lang.Throwable) suppressed 记录任何异常。
已在 21 中添加。
Java文档java.lang.MatchException。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
构造函数
| 名称 | 说明 |
|---|---|
| MatchException(String, Throwable) |
构造 |
字段
| 名称 | 说明 |
|---|---|
| is_generated |
指示绑定是否生成了此可引发项。 (继承自 Throwable) |
属性
| 名称 | 说明 |
|---|---|
| Cause |
返回此可引发的原因,或者 |
| Class |
获取此可引发的运行时类。 (继承自 Throwable) |
| Handle |
基础 Android 实例的句柄。 (继承自 Throwable) |
| JavaStackTrace |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| JniIdentityHashCode |
获取互操作运行时分配给此Java对等的标识哈希代码。 (继承自 Throwable) |
| JniManagedPeerState |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| JniPeerMembers |
获取用于调用此Java对等方成员的 JNI 元数据。 |
| LocalizedMessage |
创建此可引发的本地化说明。 (继承自 Throwable) |
| Message |
返回此可引发的详细信息消息字符串。 (继承自 Throwable) |
| PeerReference |
获取此Java对等方的 JNI 对象引用。 (继承自 Throwable) |
| StackTrace |
获取此可引发的堆栈跟踪的字符串表示形式。 (继承自 Throwable) |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 RuntimeException) |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 RuntimeException) |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| IJavaPeerable.Finalized() |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| IJavaPeerable.JniObjectReferenceControlBlock |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
引发以指示模式匹配中的意外失败。 (继承自 JavaException) |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
引发以指示模式匹配中的意外失败。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |