OpCodes.Endfinally Campo
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.