Compartilhar via


Macro RpcExcept (rpc.h)

A instrução RpcExcept fornece tratamento de exceção estruturado para aplicativos RPC.

Windows Vista e versões posteriores do Windows: RpcExceptionFilter é recomendado para tratamento de exceções estruturadas para as exceções mais comuns como uma alternativa aos filtros personalizados com RpcExcept. No entanto, os filtros de exceção personalizados ainda devem usar RpcExcept.

Sintaxe

void RpcExcept(
   expr
);

Parâmetros

expr

Expressão que é avaliada quando ocorre uma exceção. Se a expressão for avaliada como um valor diferente de zero, as instruções de exceção serão executadas. Se a expressão for avaliada como um valor zero, o desenrolamento continuará para a próxima função RpcTryExcept ou RpcTryFinally .

Retornar valor

Nenhum

Comentários

Se uma exceção não ocorrer, as instruções de expressão e exceção serão ignoradas e a execução continuará na instrução após a instrução RpcEndExcept .

A instrução composta após a cláusula RpcTryExcept é o corpo ou a seção protegida. A instrução composta após a cláusula RpcExcept é o manipulador de exceção. O manipulador especifica um conjunto de ações a ser executado se uma exceção for gerada durante a execução do corpo da seção protegida. A execução procede da seguinte maneira:

  1. A seção protegida é executada.
  2. Se nenhuma exceção ocorrer durante a execução da seção protegida, a execução continuará na instrução após a cláusula RpcEndExcept .
  3. Se ocorrer uma exceção durante a execução da seção protegida ou em qualquer rotina que a seção protegida chamar, a expressão __except será avaliada e o valor determinará como a exceção é tratada. Há três valores:
    • EXCEPTION_CONTINUE_EXECUTION (–1) Exceção é ignorada. Continue a execução no ponto onde ocorreu a exceção.
    • EXCEPTION_CONTINUE_SEARCH (0) Exceção não é reconhecida. Continue a procurar manipuladores na pilha, primeiro os que contêm as instruções try-except, depois os que têm a próxima precedência mais alta.
    •  A exceção é reconhecida. Transfira o controle para o manipulador de exceção executando a instrução composta __except e, em seguida, continue a execução após o bloco __except.
Como a expressão RpcExcept é avaliada como uma expressão C, ela é limitada a um único valor, ao operador de expressão condicional ou ao operador de vírgula. Se um processamento mais extenso for necessário, a expressão poderá chamar uma rotina que retorne um dos três valores listados acima.

RpcExceptionCode pode ser usado em instruções de expressão e exceção para determinar qual exceção ocorreu.

As restrições a seguir se aplicam:

  • Pular (através de um goto) em instruções protegidas não é permitido.
  • Não é permitido saltar (por meio de um goto) em instruções de exceção .
  • Não é permitido retornar ou saltar (por meio de um goto) de instruções protegidas .
  • Não é permitido retornar ou saltar (por meio de um goto) de instruções de exceção .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho rpc.h

Confira também

Tratamento de exceção

RpcExceptionCode

RpcExceptionFilter

RpcFinally

RpcRaiseException