Macro RpcExcept (rpc.h)

L'istruzione RpcExcept fornisce la gestione strutturata delle eccezioni per le applicazioni RPC.

Windows Vista e versioni successive di Windows: RpcExceptionFilter è consigliato per la gestione delle eccezioni strutturate per le eccezioni più comuni come alternativa ai filtri personalizzati con RpcExcept. I filtri eccezioni personalizzati devono comunque usare RpcExcept.

Sintassi

void RpcExcept(
   expr
);

Parametri

expr

Espressione valutata quando si verifica un'eccezione. Se expression restituisce un valore diverso da zero, vengono eseguite le istruzioni di eccezione. Se expression restituisce un valore zero, la rimozione continua con la funzione RpcTryExcept o RpcTryFinally successiva.

Valore restituito

nessuno

Osservazioni

Se non si verifica un'eccezione, le istruzioni di espressione ed eccezione vengono ignorate e l'esecuzione continua con l'istruzione che segue l'istruzione RpcEndExcept .

L'istruzione composta dopo la clausola RpcTryExcept è la sezione body o guarded. L'istruzione composta dopo la clausola RpcExcept è il gestore di eccezioni. Il gestore specifica un set di azioni da intraprendere se viene generata un'eccezione durante l'esecuzione del corpo della sezione protetta. L'esecuzione procede nel modo seguente:

  1. La sezione protetta viene eseguita.
  2. Se non si verifica alcuna eccezione durante l'esecuzione della sezione sorvegliata, l'esecuzione continua con l'istruzione dopo la clausola RpcEndExcept .
  3. Se si verifica un'eccezione durante l'esecuzione della sezione sorvegliata o in qualsiasi routine chiamata alla sezione sorvegliata, l'espressione __except viene valutata e il valore determina la modalità di gestione dell'eccezione. Sono disponibili tre valori:
    • EXCEPTION_CONTINUE_EXECUTION (–1) Eccezione ignorata. Continuare l'esecuzione nel punto in cui si è verificata l'eccezione.
    • EXCEPTION_CONTINUE_SEARCH (0) Eccezione non riconosciuta. Continuare la ricerca dello stack per un gestore, anzitutto per contenere le istruzioni try-except, quindi per i gestori con la precedenza successiva più elevata.
    • L'eccezione viene riconosciuta. Trasferire il controllo al gestore eccezioni eseguendo l'istruzione composta __except, quindi continuare l'esecuzione dopo il blocco __except.
Poiché l'espressione RpcExcept viene valutata come espressione C, è limitata a un singolo valore, all'operatore di espressione condizionale o all'operatore virgola. Se è necessaria un'elaborazione più estesa, l'espressione può chiamare una routine che restituisce uno dei tre valori sopra elencati.

RpcExceptionCode può essere usato nelle istruzioni di espressione ed eccezione per determinare quale eccezione si è verificata.

Si applicano le restrizioni seguenti:

  • Non è consentito saltare (attraverso un goto) in istruzioni sorvegliate .
  • Il passaggio (tramite un goto) nelle istruzioni di eccezione non è consentito.
  • La restituzione o il salto (tramite un goto) dalle istruzioni sorvegliate non è consentita.
  • La restituzione o il passaggio (tramite un goto) dalle istruzioni di eccezione non è consentito.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione rpc.h

Vedi anche

Gestione delle eccezioni

RpcExceptionCode

RpcExceptionFilter

RpcFinally

RpcRaiseException