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) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
FE 11 endfilter SEH 异常处理的 End filter 子句。

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

  1. value 被推送到堆栈上。

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

Value (必须是 类型 int32 ,并且是从 filter 子句返回) 一组特定值之一。 它应为以下项之一:

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

  • exception_execute_handler value (= 1) 启动异常处理的第二阶段,在该阶段运行最终块,直到找到与此 filter 子句关联的处理程序。 发现后,将执行处理程序。

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

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

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

以下 Emit 方法重载可以使用 endfilter opcode:

适用于