Freigeben über


Warnung C6318

Ill-defined __try/__except: Use of the constant EXCEPTION_CONTINUE_SEARCH or another constant that evaluates to zero in the exception-filter expression. Der Code im Ausnahmehandlerblock wird nicht ausgeführt.

Hinweise

Diese Warnung gibt an, dass die Ausnahme nicht behandelt wird, wenn eine Ausnahme im geschützten Block dieses strukturierten Ausnahmehandlers auftritt, da die Konstante EXCECPTION_CONTINUE_SEARCH im Ausnahmefilterausdruck verwendet wird.

Dieser Code entspricht dem geschützten Block ohne Ausnahmehandlerblock, da der Handlerblock nicht ausgeführt wird.

Codeanalysename: EXCEPTIONCONTINUESEARCH

Beispiel

Der folgende Code generiert diese Warnung:

#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");
  }
}

So korrigieren Sie die Warnung unter Verwendung des folgenden Codes

#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");
  }
}

Siehe auch

try-except-Anweisung