다음을 통해 공유


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