Поделиться через


C6310

Обновлен: Ноябрь 2007

C6310

Предупреждение C6310. Некорректная константа в фильтре исключений может стать причиной неожиданного поведения

Данное предупреждение означает, что в выражении фильтра структурированного обработчика исключений обнаружена недопустимая константа. Ниже перечислены константы, предназначенные для использования в выражении фильтра структурированного обработчика исключений.

  • EXCEPTION_CONTINUE_EXECUTION

  • EXCEPTION_CONTINUE_SEARCH

  • EXCEPTION_EXECUTE_HANDLER

Эти значения определены в файле заголовка среды выполнения excpt.h.

Использование константы, не представленной в данном списке, может привести к непредвиденному поведению.

Пример

Данное предупреждение создается в следующем коде:

#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");
  }
}