Aracılığıyla paylaş


C6310

C6310 Uyarı: geçersiz sabit özel durum filtresi beklenmeyen davranışlara neden olabilir

Bu ileti, yapılandırılmış özel durum işleyici süzgeç ifadesinde geçersiz bir sabiti algılandığını gösterir.Yapılandırılmış özel durum işleyicisinin süzgeç ifadesinde kullanılmak üzere tanımlanmış sabitler şunlardır:

  • EXCEPTION_CONTINUE_EXECUTION

  • EXCEPTION_CONTINUE_SEARCH

  • EXCEPTION_EXECUTE_HANDLER

Bu değerler, çalışma zamanı üstbilgi dosyası excpt.h tanımlanır.

Yukarıdaki listede olmayan bir sabit kullanılması beklenmeyen davranışlara neden olabilir.

Örnek

Aşağıdaki kod, bu uyarı oluşturur:

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

Bu uyarı düzeltmek için şu kodu kullanı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 (GetExceptionCode()==EXCEPTION_ACCESS_VIOLATION ? 
               EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
  {
    puts("Exception Occurred");
  }
}