다음을 통해 공유


경고 C6318

잘못 정의 __try/__except됨: 예외 필터 식에서 상수 EXCEPTION_CONTINUE_SEARCH 또는 0으로 계산되는 다른 상수의 사용입니다. 예외 처리기 블록의 코드가 실행되지 않음

설명

이 경고는 이 구조적 예외 처리기의 보호된 블록에서 예외가 발생하면 예외 필터 식에서 상수가 EXCECPTION_CONTINUE_SEARCH 사용되므로 예외가 처리되지 않음을 나타냅니다.

이 코드는 처리기 블록이 실행되지 않으므로 예외 처리기 블록이 없는 보호된 블록과 동일합니다.

코드 분석 이름: EXCEPTIONCONTINUESEARCH

예시

다음 코드는 이 경고를 생성합니다.

#include <excpt.h>
#include <stdio.h>

void f (char *pch)
{
  __try
  {
    // assignment might fail
    *pch = 0;
  }
  __except (EXCEPTION_CONTINUE_SEARCH) // warning C6318
  {
    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");
  }
}

참고 항목

try-except 문