Sdílet prostřednictvím


C6318

upozornění C6318: nesprávně definovaný blok __try/__except: použití konstanty EXCEPTION_CONTINUE_SEARCH nebo jiné, která je ve výrazu filtru výjimky vyhodnocena jako nula.Kód v bloku obslužné rutiny výjimek není spuštěn

Toto upozornění znamená, že pokud se ve chráněném bloku této strukturované obslužné rutiny výjimek vyskytne výjimka, nebude zpracována, protože je ve výrazu filtru výjimky použita konstanta EXCECPTION_CONTINUE_SEARCH.

Tento kód je ekvivalentní k chráněnému bloku bez bloku obslužné rutiny výjimek, protože blok rutiny není spuštěn.

Příklad

Následující kód generuje toto upozornění:

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

Pro opravu tohoto upozornění použijte následující kód:

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

Viz také

Referenční dokumentace

Zkuste-s výjimkou prohlášení