OpCodes.Endfilter Campo
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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, é:
valueé enviado por push para a pilha.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çãoexception_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: