C6310
upozornění C6310: Neplatná konstanta filtru výjimky může způsobit neočekávané chování
Tato zpráva znamená, že ve výrazu filtru obslužné rutiny strukturované výjimky byla zjištěna neplatná konstanta.Konstanty určené pro použití ve výrazu filtru obslužné rutiny strukturované výjimky jsou:
EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_CONTINUE_SEARCH
EXCEPTION_EXECUTE_HANDLER
Tyto hodnoty jsou definovány v runtime záhlaví souboru excpt.h.
Použití konstant, která není v předchozím seznamu může způsobit neočekávané chování.
Příklad
Následující kód vygeneruje toto upozornění:
#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");
}
}
Chcete-li opravit toto upozornění, použijte následující kód:
#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");
}
}