C6310
Actualización: noviembre 2007
C6310
Advertencia C6310: Una constante no válida en el filtro de excepción puede provocar un comportamiento inesperado
Este mensaje indica que se detectó una constante no válida en la expresión de filtro de un controlador de excepciones estructurado. Las constantes definidas para su uso en la expresión de filtro de un controlador de excepciones estructurado son:
EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_CONTINUE_SEARCH
EXCEPTION_EXECUTE_HANDLER
Estos valores se definen en el archivo de encabezado en tiempo de ejecución excpt.h.
Utilizar una constante que no se encuentre en la lista anterior puede producir un comportamiento inesperado.
Ejemplo
El código siguiente genera esta advertencia:
#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");
}
}
Para corregir esta advertencia, utilice el código siguiente:
#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");
}
}