Freigeben über


Warnung C6310

Ungültige Konstante im Ausnahmefilter kann zu unerwartetem Verhalten führen

Hinweise

Diese Meldung gibt an, dass eine unzulässige Konstante im Filterausdruck eines strukturierten Ausnahmehandlers erkannt wurde. Die für die Verwendung im Filterausdruck eines strukturierten Ausnahmehandlers definierten Konstanten sind:

  • EXCEPTION_CONTINUE_EXECUTION

  • EXCEPTION_CONTINUE_SEARCH

  • EXCEPTION_EXECUTE_HANDLER

Diese Werte werden in der Laufzeitheaderdatei excpt.h definiert.

Die Verwendung einer Konstante, die nicht in der vorherigen Liste enthalten ist, kann zu unerwartetem Verhalten führen.

Codeanalysename: ILLEGALEXCEPTEXPRCONST

Beispiel

Der folgende Code generiert diese Warnung:

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

BOOL LimitExceeded();

void fd( )
{
  __try
  {
    if (LimitExceeded())
    {
      RaiseException(EXCEPTION_ACCESS_VIOLATION,0,0,0);
    }
    else
    {
      // code
    }
  }
  __except (EXCEPTION_ACCESS_VIOLATION)
  {
    puts("Exception Occurred");
  }
}

So korrigieren Sie die Warnung unter Verwendung des folgenden Codes

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

BOOL LimitExceeded();

void fd( )
{
  __try
  {
    if (LimitExceeded())
    {
      RaiseException(EXCEPTION_ACCESS_VIOLATION,0,0,0);
    }
    else
    {
      // code
    }
  }
  __except (GetExceptionCode()==EXCEPTION_ACCESS_VIOLATION ?
               EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
  {
    puts("Exception Occurred");
  }
}