Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"identifierare" : felaktig kontext för inbyggd funktion
Anmärkningar
Strukturerade undantagshanteringsfunktioner är ogiltiga i vissa sammanhang:
_exception_code()utanför ett undantagsfilter eller__exceptblocket_exception_info()utanför ett undantagsfilter_abnormal_termination()utanför ett__finallyblock
Du kan lösa felet genom att se till att de inbyggda undantagshanteringsfunktionerna placeras i rätt kontext.
Exempel
I följande exempel genereras C2707.
// C2707.cpp
#include <windows.h>
#include <stdio.h>
LONG MyFilter(LONG excode)
{
return (excode == EXCEPTION_ACCESS_VIOLATION ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH); // OK
}
LONG func(void)
{
int x, y;
return(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? // C2707
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH);
__try
{
y = 0;
x = 4 / y;
return 0;
}
__except(MyFilter(GetExceptionCode()))
{
return(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? // ok
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH);
}
}
int main()
{
__try
{
func();
} __except(EXCEPTION_EXECUTE_HANDLER)
{
printf_s("Caught exception\n");
}
}