共用方式為


C6310

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