OpCodes.Endfilter 字段

定义

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

public: static initonly System::Reflection::Emit::OpCode Endfilter;
public static readonly System.Reflection.Emit.OpCode Endfilter;
 staticval mutable Endfilter : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfilter As OpCode 

字段值

注解

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

Format 程序集格式 Description
FE 11 endfilter SEH 异常处理的结束筛选器子句。

堆栈过渡行为按顺序排列,为:

  1. value 被推送到堆栈上。

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

Value (必须属于类型 int32 且是一组特定的值)是从筛选器子句返回的。 它应为以下项之一:

  • exception_continue_searchvalue = 0) 继续搜索异常处理程序

  • exception_execute_handlervalue = 1)启动异常处理的第二阶段,其中最后一个块运行,直到与此筛选器子句关联的处理程序位于此筛选器子句。 发现后,将执行处理程序。

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

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

除了通过异常机制,控件无法传输到筛选器块中。 除使用 throw 指令或执行最终 endfilter 指令外,无法从筛选器块中转移控制。 不能在 try 块中 filter 嵌入块。 如果在块内 filter 引发异常,则会截获该异常,并返回值 0 (exception_continue_search) 。

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

适用于