Предупреждение C6310
Недопустимая константа в фильтре исключений может вызвать непредвиденное поведение
Замечания
Это сообщение указывает, что в выражении фильтра структурированного обработчика исключений обнаружена недопустимая константа. Константы, определенные для использования в выражении фильтра структурированного обработчика исключений:
EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_CONTINUE_SEARCH
EXCEPTION_EXECUTE_HANDLER
Эти значения определены в файле заголовка во время выполнения excpt.h.
Использование константы, не указанной в предыдущем списке, может привести к непредвиденному поведению.
Имя анализа кода: ILLEGALEXCEPTEXPRCONST
Пример
Следующий код создает это предупреждение:
#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");
}
}
Чтобы исправить это предупреждение, используйте следующий код:
#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");
}
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по