Compartir a través de


OpCodes.Endfinally Campo

Definición

Vuelve a transferir el control de la cláusula fault o finally de un bloque de excepción al controlador de excepciones de Common Language Infrastructure (CLI).

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 de campo

Comentarios

En la tabla siguiente se muestra el formato de ensamblado hexadecimal y lenguaje intermedio de Microsoft (MSIL), junto con un breve resumen de referencia:

Formato Formato de ensamblado Descripción
DC endfinally

endfault
Finaliza la finally cláusula o fault de un bloque de excepciones.

No hay ningún comportamiento de transición de pila para esta instrucción.

Endfinally y endfault indican el final de la finally cláusula o fault para que la pila desenredado pueda continuar hasta que se invoque el controlador de excepciones. La endfinally instrucción o endfault transfiere el control al mecanismo de excepción de la CLI. A continuación, el mecanismo busca la siguiente finally cláusula de la cadena si se ha salido del bloque protegido con una instrucción leave. Si el bloque protegido se salió con una excepción, la CLI buscará el siguiente finally o fault, o escribirá el controlador de excepciones elegido durante el primer paso del control de excepciones.

Una endfinally instrucción solo puede aparecer léxicamente dentro de un finally bloque. A diferencia de la endfilter instrucción , no hay ningún requisito de que el bloque termine con una endfinally instrucción y puede haber tantas endfinally instrucciones dentro del bloque como sea necesario. Estas mismas restricciones se aplican a la endfault instrucción y al fault bloque .

El control no se puede transferir a un finally bloque (o fault), excepto a través del mecanismo de excepción. El control no se puede transferir fuera de un finally bloque (o fault), excepto mediante el uso de una throw instrucción o la ejecución de la endfinally instrucción (o endfault). En concreto, no se puede "caer" de un finally bloque (o fault) o para ejecutar una Ret instrucción o Leave dentro de un finally bloque (o fault).

Tenga en cuenta que las endfault instrucciones y endfinally son alias: corresponden al mismo código de operación.

La sobrecarga de método siguiente Emit puede usar el endfinally código de operación (endfault), así como el ILGenerator método EndExceptionBlock.

Se aplica a