다음을 통해 공유


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