C6310
تحذير C6310: يمكن أن يؤدي ثابت غير قانونية في عامل تصفية استثناء سلوك غير متوقع
وتشير هذه الرسالة إلى أن تم الكشف عن ثابت غير قانونية في تعبير عامل تصفية من معالج استثناء المركبة. الثوابت المعرفة من أجل استخدم في عامل تصفية الذي يتم التعبير عن معالج استثناء المصنفة:
EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_CONTINUE_SEARCH
EXCEPTION_EXECUTE_HANDLER
تم تعريف هذه قيم في excpt.h الملف عنوان وقت التشغيل.
استخدام ثابت التي هو في lهوt السابقة لم يسبب سلوك غير متوقع.
مثال
يلي تعليمات برمجية ينشئ هذا التحذير:
#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");
}
}
إلى تصحيح هذا التحذير، استخدم تعليمات برمجية التالية:
#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");
}
}