Compartir a través de


Macro RpcExcept (rpc.h)

La instrucción RpcExcept proporciona un control de excepciones estructurado para las aplicaciones RPC.

Windows Vista y versiones posteriores de Windows: RpcExceptionFilter se recomienda para el control de excepciones estructurado para las excepciones más comunes como alternativa a filtros personalizados con RpcExcept. Sin embargo, los filtros de excepciones personalizados deben usar RpcExcept.

Sintaxis

void RpcExcept(
   expr
);

Parámetros

expr

Expresión que se evalúa cuando se produce una excepción. Si expression se evalúa como un valor distinto de cero, se ejecutan las instrucciones de excepción. Si expression se evalúa como un valor cero, el desenredado continúa con la siguiente función RpcTryExcept o RpcTryFinally .

Valor devuelto

None

Observaciones

Si no se produce una excepción, las instruccionesexpression y exception se omiten y la ejecución continúa en la instrucción después de la instrucción RpcEndExcept.

La instrucción compuesta después de la cláusula RpcTryExcept es el cuerpo o sección protegida. La instrucción compuesta después de la cláusula RpcExcept es el controlador de excepciones. El controlador especifica un conjunto de acciones que se realizarán si se inicia una excepción durante la ejecución del cuerpo de la sección protegida. La ejecución continúa de la siguiente manera:

  1. Se ejecuta la sección protegida.
  2. Si no se produce ninguna excepción durante la ejecución de la sección protegida, la ejecución continúa en la instrucción después de la cláusula RpcEndExcept .
  3. Si se produce una excepción durante la ejecución de la sección protegida o en cualquier rutina, se evalúa la expresión __except y el valor determina cómo se controla la excepción. Existen tres valores:
    • EXCEPTION_CONTINUE_EXECUTION (–1) Se descarta la excepción. La ejecución continúa en el punto donde se ha producido la excepción.
    • no se reconoce EXCEPTION_CONTINUE_SEARCH (0). La búsqueda de un controlador continúa hacia la parte superior de la pila, primero con las instrucciones try-except contenedoras y, después, con los controladores siguientes que tengan mayor prioridad.
    • La excepción se reconoce. Transfiera el control al controlador de excepciones ejecutando la instrucción compuesta __except y, a continuación, continúe la ejecución después del bloque __except.
Dado que la expresión RpcExcept se evalúa como una expresión de C, se limita a un único valor, al operador conditional-expression o al operador de coma. Si se requiere un mayor procesamiento, la expresión puede llamar a una rutina que devuelva uno de los tres valores enumerados anteriormente.

RpcExceptionCode se puede usar en instruccionesexpression y exception para determinar qué excepción se produjo.

Se aplican las restricciones que se indican a continuación:

  • No se permite saltar (a través de un goto) a instrucciones protegidas .
  • No se permite saltar (a través de un goto) a instrucciones de excepción .
  • No se permite devolver o saltar (a través de un goto) de instrucciones protegidas .
  • No se permite devolver o saltar (a través de un goto) desde instrucciones de excepción .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado rpc.h

Consulte también

Control de excepciones

RpcExceptionCode

RpcExceptionFilter

RpcFinally

RpcRaiseException