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