Freigeben über


C6318

Warnung C6318: Falsch definiertes __try/__except: Verwendung der EXCEPTION_CONTINUE_SEARCH-Konstanten oder einer anderen Konstanten, die zu 0 (null) ausgewertet wird, im Ausnahmefilterausdruck.Der Code im Ausnahmehandlerblock wird nicht ausgeführt.

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

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

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 6318
  {
    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

Referenz

try-except-Anweisung Anweisung