Partager via


Macro RpcExcept (rpc.h)

L’instruction RpcExcept fournit une gestion structurée des exceptions pour les applications RPC.

Windows Vista et versions ultérieures de Windows : RpcExceptionFilter est recommandé pour la gestion structurée des exceptions pour les exceptions les plus courantes comme alternative aux filtres personnalisés avec RpcExcept. Toutefois, les filtres d’exception personnalisés doivent toujours utiliser RpcExcept.

Syntaxe

void RpcExcept(
   expr
);

Paramètres

expr

Expression évaluée lorsqu’une exception se produit. Si expression est évaluée à une valeur différente de zéro, les instructions d’exception sont exécutées. Si l’expression est évaluée à zéro, le déroulement continue vers la fonction RpcTryExcept ou RpcTryFinally suivante.

Valeur de retour

None

Remarques

Si aucune exception ne se produit, les instructions d’expression et d’exception sont ignorées et l’exécution se poursuit à l’instruction qui suit l’instruction RpcEndExcept .

L’instruction composée après la clause RpcTryExcept est le corps ou la section protégée. L’instruction composée après la clause RpcExcept est le gestionnaire d’exceptions. Le gestionnaire spécifie un ensemble d'actions à entreprendre si une exception est levée pendant l'exécution du corps de la section protégée. L'exécution se déroule comme suit :

  1. La section protégée est exécutée.
  2. Si aucune exception ne se produit pendant l’exécution de la section protégée, l’exécution se poursuit au niveau de l’instruction après la clause RpcEndExcept .
  3. Si une exception se produit pendant l’exécution de la section protégée ou dans une routine que la section protégée appelle, l’expression __except est évaluée et la valeur détermine la façon dont l’exception est gérée. Il existe trois valeurs :
    • EXCEPTION_CONTINUE_EXECUTION (–1) l’exception est ignorée. Poursuivre l'exécution au point où l'exception s'est produite.
    • EXCEPTION_CONTINUE_SEARCH (0) l’exception n’est pas reconnue. Poursuivre la recherche d'un gestionnaire dans la pile, en premier pour qu'il contienne des instructions try-except, puis pour les gestionnaires avec la priorité la plus élevée suivante.
    • L’exception est reconnue. Transférez le contrôle vers le gestionnaire d’exceptions en exécutant l’instruction composée __except, puis poursuivez l’exécution après le bloc __except.
Étant donné que l’expression RpcExcept est évaluée en tant qu’expression C, elle est limitée à une seule valeur, l’opérateur d’expression conditionnelle ou l’opérateur virgule. Si un traitement plus étendu est requis, l'expression peut appeler une routine qui retourne l'une des trois valeurs répertoriées ci-dessus.

RpcExceptionCode peut être utilisé dans les instructions d’expression et d’exception pour déterminer l’exception qui s’est produite.

Les restrictions suivantes s’appliquent :

  • Le saut (via un goto) dans des instructions surveillées n’est pas autorisé.
  • Le saut (via un goto) dans les instructions d’exception n’est pas autorisé.
  • Le retour ou le saut (via un goto) à partir d’instructions surveillées n’est pas autorisé.
  • Le retour ou le saut (via un goto) à partir d’instructions d’exception n’est pas autorisé.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête rpc.h

Voir aussi

Gestion des exceptions

RpcExceptionCode

RpcExceptionFilter

RpcFinally

RpcRaiseException