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