Partager via


OpCodes.Endfinally Champ

Définition

Transfère à nouveau le contrôle de la clause fault ou finally d'un bloc d'exception au gestionnaire d'exceptions 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 

Valeur de champ

Remarques

Le tableau suivant répertorie le format d’assembly MSIL et hexadécimal de l’instruction, ainsi qu’un bref résumé des références :

Format Format d’assembly Description
DC endfinally

endfault
Termine la finally clause ou fault d’un bloc d’exception.

Il n’existe aucun comportement de transition de pile pour cette instruction.

Endfinallyet endfault signalent la fin de la clause ou fault afin que le finally déroulement de la pile puisse continuer jusqu’à ce que le gestionnaire d’exceptions soit appelé. L’instruction endfinally ou endfault transfère le contrôle au mécanisme d’exception CLI. Le mécanisme recherche ensuite la clause suivante finally dans la chaîne si le bloc protégé a été arrêté avec une instruction leave. Si le bloc protégé a été arrêté avec une exception, l’interface CLI recherche le suivant finally ou fault, ou entre le gestionnaire d’exceptions choisi lors de la première passe de gestion des exceptions.

Une endfinally instruction ne peut apparaître que lexicalement dans un finally bloc. Contrairement à l’instruction endfilter , il n’est pas nécessaire que le bloc se termine par une endfinally instruction, et il peut y avoir autant d’instructions endfinally dans le bloc que nécessaire. Ces mêmes restrictions s’appliquent à l’instruction endfault et au fault bloc.

Le contrôle ne peut pas être transféré dans un finally bloc (ou fault) sauf par le biais du mécanisme d’exception. Le contrôle ne peut pas être transféré hors d’un finally bloc (ou fault) sauf par l’utilisation d’une throw instruction ou l’exécution de l’instruction endfinally (ou endfault). En particulier, vous ne pouvez pas « tomber » d’un finally bloc (ou fault) ou exécuter une Ret instruction ou Leave au sein d’un finally bloc (ou fault).

Notez que les endfault instructions et endfinally sont des alias : ils correspondent au même opcode.

La surcharge de méthode suivante Emit peut utiliser l’opcode endfinally (endfault), ainsi que la ILGenerator méthode EndExceptionBlock.

S’applique à