MatchException 类

定义

引发以指示模式匹配中的意外失败。

[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 值和嵌套记录模式。 给定具有类型T单个组件的记录类S,其中T另一个记录类具有类型单个分量String,则嵌套记录模式R(S(var s))被视为类型详尽R,但它与结果new R(null)不匹配(而它确实与结果new R(new S(null))匹配)。</li></ul>

MatchException 也可以由模式与模式匹配值的过程引发。 例如,涉及记录模式的模式匹配可能需要隐式调用访问器方法才能提取组件值。 如果其中任一访问器方法引发异常,则模式匹配会突然完成并引发 MatchException。 原始异常将设置为以下项之MatchExceptionThrowable#getCause() cause。 不会 Throwable#addSuppressed(java.lang.Throwable) suppressed 记录任何异常。

已在 21 中添加。

Java文档java.lang.MatchException

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
MatchException(String, Throwable)

构造 MatchException 具有指定的详细信息消息和原因。

字段

名称 说明
is_generated

引发以指示模式匹配中的意外失败。

(继承自 Throwable)

属性

名称 说明
Cause

返回此可引发的原因,或者 null 原因不存在或未知。

(继承自 Throwable)
Class

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
Handle

基础 Android 实例的句柄。

(继承自 Throwable)
JniIdentityHashCode

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
JniPeerMembers

引发以指示模式匹配中的意外失败。

LocalizedMessage

创建此可引发的本地化说明。

(继承自 Throwable)
Message

返回此可引发的详细信息消息字符串。

(继承自 Throwable)
PeerReference

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
StackTrace

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 RuntimeException)
ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 RuntimeException)

方法

名称 说明
AddSuppressed(Throwable)

将指定的异常追加到取消的异常,以便传递此异常。

(继承自 Throwable)
Dispose()

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
Dispose(Boolean)

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
FillInStackTrace()

填充执行堆栈跟踪。

(继承自 Throwable)
GetStackTrace()

提供对打印的 #printStackTrace()堆栈跟踪信息的编程访问。

(继承自 Throwable)
GetSuppressed()

返回一个数组,其中包含禁止显示的所有异常,通常是由 try-with-resources 语句为了传递此异常。

(继承自 Throwable)
InitCause(Throwable)

初始化 此可引发到指定值的原因

(继承自 Throwable)
PrintStackTrace()

打印此可引发结果及其回溯到标准错误流。

(继承自 Throwable)
PrintStackTrace(PrintStream)

打印此可引发的输出及其回溯到指定的打印流。

(继承自 Throwable)
PrintStackTrace(PrintWriter)

打印此可引发结果及其回溯到指定的打印编写器。

(继承自 Throwable)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Throwable)
SetStackTrace(StackTraceElement[])

设置将由相关方法返回 #getStackTrace() 和打印 #printStackTrace() 的堆栈跟踪元素。

(继承自 Throwable)
ToString()

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
UnregisterFromRuntime()

引发以指示模式匹配中的意外失败。

(继承自 Throwable)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
IJavaPeerable.DisposeUnlessReferenced()

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
IJavaPeerable.Finalized()

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
IJavaPeerable.JniManagedPeerState

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
IJavaPeerable.SetJniIdentityHashCode(Int32)

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

引发以指示模式匹配中的意外失败。

(继承自 Throwable)
IJavaPeerable.SetPeerReference(JniObjectReference)

引发以指示模式匹配中的意外失败。

(继承自 Throwable)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

引发以指示模式匹配中的意外失败。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于