Partilhar via


OpCodes.Endfilter Campo

Definição

Transfere o controle da cláusula filter de uma exceção para o manipulador de exceção da CLI (Common Language Infrastructure).

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 

Valor do campo

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:

Formatar Formato de assembly Descrição
FE 11 Endfilter Cláusula de filtro final do tratamento de exceção SEH.

O comportamento de transição da pilha, em ordem sequencial, é:

  1. value é enviado por push para a pilha.

  2. value é estourado da pilha; endfilter é executado e o controle é transferido para o manipulador de exceção.

Value (que deve ser do tipo int32 e é um de um conjunto específico de valores) é retornado da cláusula filter. Deve ser um dos seguintes:

  • exception_continue_search (value = 0) para continuar procurando um manipulador de exceção

  • exception_execute_handler (value = 1) para iniciar a segunda fase de tratamento de exceção em que os blocos finalmente são executados até que o manipulador associado a essa cláusula de filtro esteja localizado. Após a descoberta, o manipulador é executado.

Outros valores inteiros produzirão resultados não especificados.

O ponto de entrada de um filtro, conforme mostrado na tabela de exceção do método, deve ser a primeira instrução no bloco de código do filtro. A endfilter instrução deve ser a última instrução no bloco de código do filtro (portanto, só pode haver uma endfilter para qualquer bloco de filtro único). Depois de executar a instrução, o endfilter controle flui logicamente de volta para o mecanismo de tratamento de exceção da CLI.

O controle não pode ser transferido para um bloco de filtro, exceto por meio do mecanismo de exceção. O controle não pode ser transferido de um bloco de filtro, exceto pelo uso de uma throw instrução ou pela execução da instrução final endfilter . Não é possível inserir um try bloco dentro de um filter bloco. Se uma exceção for lançada dentro do filter bloco, ela será interceptada e um valor de 0 (exception_continue_search) será retornado.

A sobrecarga do método Emit a seguir pode usar o endfilter opcode:

Aplica-se a