Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'Identifier' : ungültiger Kontext für systeminterne Funktionen
Bemerkungen
Systeminterne strukturierte Ausnahmebehandlungen sind in bestimmten Kontexten ungültig:
_exception_code()außerhalb eines Ausnahmefilters oder__except-blocks_exception_info()außerhalb eines Ausnahmefilters_abnormal_termination()außerhalb eines__finallyBlocks
Um den Fehler zu beheben, stellen Sie sicher, dass die systeminternen Ausnahmebehandlungen im entsprechenden Kontext platziert werden.
Beispiel
Im folgenden Beispiel wird C2707 generiert.
// 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");
}
}