Partilhar via


OpCodes.Endfinally Campo

Definição

Transfere o controle da cláusula fault ou finally de um bloco de exceção de volta para o manipulador de exceção da CLI (Common Language Infrastructure).

public: static initonly System::Reflection::Emit::OpCode Endfinally;
public static readonly System.Reflection.Emit.OpCode Endfinally;
 staticval mutable Endfinally : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfinally 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
DC Endfinally

Endfault
Encerra a finally cláusula ou fault de um bloco de exceção.

Não há comportamentos de transição de pilha para esta instrução.

Endfinallye endfault sinalizam o final da cláusula ou fault para que o finally desenrolamento da pilha possa continuar até que o manipulador de exceção seja invocado. A endfinally instrução ou endfault transfere o controle de volta para o mecanismo de exceção da CLI. Em seguida, o mecanismo pesquisa a próxima finally cláusula na cadeia se o bloco protegido foi encerrado com uma instrução de licença. Se o bloco protegido tiver sido encerrado com uma exceção, a CLI procurará o próximo finally ou faultou inserirá o manipulador de exceção escolhido durante a primeira passagem de tratamento de exceção.

Uma endfinally instrução só pode aparecer lexicalmente dentro de um finally bloco. Ao contrário da endfilter instrução , não há nenhum requisito de que o bloco termine com uma instrução endfinally e pode haver tantas endfinally instruções dentro do bloco quanto necessário. Essas mesmas restrições se aplicam à endfault instrução e ao fault bloco .

O controle não pode ser transferido para um finally bloco (ou fault), exceto por meio do mecanismo de exceção. O controle não pode ser transferido de um finally bloco (ou fault), exceto pelo uso de uma throw instrução ou pela execução da endfinally instrução (ou endfault). Em particular, você não pode "sair" de um finally bloco (ou fault) ou executar uma Ret instrução ou Leave dentro de um finally bloco (ou fault).

Observe que as endfault instruções e endfinally são aliases – elas correspondem ao mesmo opcode.

Emit A sobrecarga do método a seguir pode usar o endfinally opcode (endfault), bem como o ILGenerator método EndExceptionBlock.

Aplica-se a