Partager via


OpCodes.Endfilter Champ

Définition

Transfère à nouveau le contrôle de la clause filter d'une exception au gestionnaire d'exceptions CLI.

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 

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
FE 11 endfilter Clause de filtre de fin de la gestion des exceptions SEH.

Le comportement transitionnel de la pile, dans l’ordre séquentiel, est le suivant :

  1. value est poussé vers la pile.

  2. value est sorti de la pile ; endfilter est exécuté et le contrôle est transféré au gestionnaire d’exceptions.

Value (qui doit être de type int32 et fait partie d’un ensemble spécifique de valeurs) est retourné à partir de la clause de filtre. Il doit s’agir de l’un des éléments suivants :

  • exception_continue_search (value = 0) pour continuer à rechercher un gestionnaire d’exceptions

  • exception_execute_handler (value = 1) pour démarrer la deuxième phase de gestion des exceptions où les blocs finally sont exécutés jusqu’à ce que le gestionnaire associé à cette clause de filtre se trouve. Lors de la découverte, le gestionnaire est exécuté.

D’autres valeurs entières produisent des résultats non spécifiés.

Le point d’entrée d’un filtre, comme indiqué dans la table d’exceptions de la méthode, doit être la première instruction du bloc de code du filtre. L’instruction endfilter doit être la dernière instruction du bloc de code du filtre (il ne peut donc y en avoir qu’une endfilter pour un seul bloc de filtre). Après l’exécution de l’instruction, le endfilter contrôle revient logiquement au mécanisme de gestion des exceptions CLI.

Le contrôle ne peut pas être transféré dans un bloc de filtre, sauf par le biais du mécanisme d’exception. Le contrôle ne peut pas être transféré en dehors d’un bloc de filtre, sauf par l’utilisation d’une throw instruction ou par l’exécution de l’instruction finale endfilter . Vous ne pouvez pas incorporer un try bloc dans un filter bloc. Si une exception est levée à l’intérieur du filter bloc, elle est interceptée et la valeur 0 (exception_continue_search) est retournée.

La surcharge de méthode suivante Emit peut utiliser l’opcode endfilter :

S’applique à