信息
您所需的主题如下所示。但此主题未包含在此库中。

OpCodes.Endfilter 字段

2013/12/13

将控制从异常的 filter 子句转移回公共语言结构 (CLI) 异常处理程序。

Namespace:  System.Reflection.Emit
程序集:  mscorlib(位于 mscorlib.dll 中)

public static readonly OpCode Endfilter

下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 汇编格式,以及简短的参考摘要:

Format

汇编格式

说明

FE 11

endfilter

SEH 异常处理的 End filter 子句。

堆栈转换行为依次为:

  1. value 被推送到堆栈上。

  2. 从堆栈中弹出 value;执行 endfilter 并将控制转移到异常处理程序。

从筛选子句返回 Value(必须是类型 int32 并且是值的特定集合之一)。 它应该是以下值之一:

  • exception_continue_search (value = 0),继续搜索异常处理程序

  • exception_execute_handler (value = 1),开始异常处理的第二阶段,在此阶段中在定位与此筛选子句关联的处理程序前运行 finally 块。 在发现后,执行处理程序。

其他整数值将生成未指定的结果。

筛选器的入口点(如该方法的异常表中所示)必须在筛选器的代码块中是第一个指令。 endfilter 指令在筛选器的代码块中必须是最后一个指令(因此对于任何单个筛选器块,只能有一个 endfilter)。 在执行 endfilter 指令后,控制逻辑上流回 CLI 异常处理机制。

除非通过异常机制,否则不能将控制转移到筛选器块中。 除非通过使用 throw 指令或通过执行最终的 endfilter 指令,否则不能将控制转移出筛选器块。 不能将 try 块嵌入到 filter 块内。 如果在 filter 块内引发一个异常,将截获它并返回值 0 (exception_continue_search)。

下面的 Emit 方法重载可以使用 endfilter 操作码:

  • ILGenerator.Emit(OpCode)

Windows Phone OS

受以下版本支持: 8.0, 7.1

Windows Phone

显示: