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