Sdílet prostřednictvím


C6310

upozornění C6310: Neplatná konstanta filtru výjimky může způsobit neočekávané chování

Tato zpráva znamená, že ve výrazu filtru obslužné rutiny strukturované výjimky byla zjištěna neplatná konstanta.Konstanty určené pro použití ve výrazu filtru obslužné rutiny strukturované výjimky jsou:

  • EXCEPTION_CONTINUE_EXECUTION

  • EXCEPTION_CONTINUE_SEARCH

  • EXCEPTION_EXECUTE_HANDLER

Tyto hodnoty jsou definovány v runtime záhlaví souboru excpt.h.

Použití konstant, která není v předchozím seznamu může způsobit neočekávané chování.

Příklad

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

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

Chcete-li opravit toto upozornění, použijte následující kód:

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