OpCodes.Endfilter Field
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Transfers control from the filter
clause of an exception back to the Common Language Infrastructure (CLI) exception handler.
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
The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:
Format | Assembly Format | Description |
---|---|---|
FE 11 | endfilter | End filter clause of SEH exception handling. |
The stack transitional behavior, in sequential order, is:
value
is pushed onto the stack.value
is popped from the stack;endfilter
is executed and control is transferred to the exception handler.
Value
(which must be of type int32
and is one of a specific set of values) is returned from the filter clause. It should be one of:
exception_continue_search
(value
= 0) to continue searching for an exception handlerexception_execute_handler
(value
= 1) to start the second phase of exception handling where finally blocks are run until the handler associated with this filter clause is located. Upon discovery, the handler is executed.
Other integer values will produce unspecified results.
The entry point of a filter, as shown in the method's exception table, must be the first instruction in the filter's code block. The endfilter
instruction must be the last instruction in the filter's code block (hence there can only be one endfilter
for any single filter block). After executing the endfilter
instruction, control logically flows back to the CLI exception handling mechanism.
Control cannot be transferred into a filter block except through the exception mechanism. Control cannot be transferred out of a filter block except through the use of a throw
instruction or by executing the final endfilter
instruction. You cannot embed a try
block within a filter
block. If an exception is thrown inside the filter
block, it is intercepted and a value of 0 (exception_continue_search
) is returned.
The following Emit method overload can use the endfilter
opcode:
Product | Versions |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
.NET feedback
.NET is an open source project. Select a link to provide feedback: