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