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