Warnung C6318
Ill-defined
__try
/__except
: Use of the constant EXCEPTION_CONTINUE_SEARCH or another constant that evaluates to zero in the exception-filter expression. Der Code im Ausnahmehandlerblock wird nicht ausgeführt.
Hinweise
Diese Warnung gibt an, dass die Ausnahme nicht behandelt wird, wenn eine Ausnahme im geschützten Block dieses strukturierten Ausnahmehandlers auftritt, da die Konstante EXCECPTION_CONTINUE_SEARCH
im Ausnahmefilterausdruck verwendet wird.
Dieser Code entspricht dem geschützten Block ohne Ausnahmehandlerblock, da der Handlerblock nicht ausgeführt wird.
Codeanalysename: EXCEPTIONCONTINUESEARCH
Beispiel
Der folgende Code generiert diese Warnung:
#include <excpt.h>
#include <stdio.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except (EXCEPTION_CONTINUE_SEARCH) // warning C6318
{
puts("Exception Occurred");
}
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Codes
#include <excpt.h>
#include <stdio.h>
#include <windows.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except( (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
{
puts("Access violation");
}
}