Condividi tramite


Avviso C6318

Non definito__try/__except: uso della costante EXCEPTION_CONTINUE_edizione Standard ARCH o di un'altra costante che restituisce zero nell'espressione di filtro eccezioni. Il codice nel blocco del gestore eccezioni non viene eseguito

Osservazioni:

Questo avviso indica che se si verifica un'eccezione nel blocco protetto di questo gestore di eccezioni strutturate, l'eccezione non verrà gestita perché la costante EXCECPTION_CONTINUE_SEARCH viene usata nell'espressione di filtro delle eccezioni.

Questo codice equivale al blocco protetto senza il blocco del gestore eccezioni perché il blocco del gestore non viene eseguito.

Nome dell'analisi del codice: EXCEPTIONCONTINUESEARCH

Esempio

Il codice seguente genera questo avviso:

#include <excpt.h>
#include <stdio.h>

void f (char *pch)
{
  __try
  {
    // assignment might fail
    *pch = 0;
  }
  __except (EXCEPTION_CONTINUE_SEARCH) // warning C6318
  {
    puts("Exception Occurred");
  }
}

Per correggere questo avviso, usare il codice seguente:

#include <excpt.h>
#include <stdio.h>
#include <windows.h>

void f (char *pch)
{
  __try
  {
    // assignment might fail
    *pch = 0;
  }
  __except( (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) ?
                EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
  {
    puts("Access violation");
  }
}

Vedi anche

Istruzione try-except