C6310
更新:2007 年 11 月
警告 C6310: 例外狀況篩選條件中的不合法常數會造成未預期的行為
這個訊息表示在結構例外處理常式 (Exception Handler) 的篩選條件運算式中偵測到不合法常數。定義在結構例外處理常式之篩選條件運算式中使用的常數為:
EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_CONTINUE_SEARCH
EXCEPTION_EXECUTE_HANDLER
這些值是定義在執行階段標頭檔 (Header File) excpt.h 中。
使用不在上述清單中的常數會造成未預期的行為。
範例
下列程式碼將產生出這個警告:
#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");
}
}