C6318
경고 C6318: __try/__except이 잘못 정의되었습니다. 예외 필터 식에서 상수 EXCEPTION_CONTINUE_SEARCH 또는 0으로 평가되는 다른 상수를 사용했습니다.예외 처리기 블록의 코드가 실행되지 않습니다.
이 경고는 이 구조적 예외 처리기의 보호된 블록에서 예외가 발생한 경우 예외 필터 식에 상수 EXCECPTION_CONTINUE_SEARCH가 사용되었기 때문에 예외가 처리되지 않는다는 것을 나타냅니다.
처리기 블록이 실행되지 않기 때문에 이 코드는 예외 처리기 블록이 없는 보호된 블록과 같습니다.
예제
다음 코드에서는 이 경고를 발생시킵니다.
#include <excpt.h>
#include <stdio.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except (EXCEPTION_CONTINUE_SEARCH) // warning 6318
{
puts("Exception Occurred");
}
}
이 경고를 해결하려면 다음 코드를 사용합니다.
#include <excpt.h>
#include <stdio.h>
#include <windows.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except( (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
{
puts("Access violation");
}
}