次の方法で共有


C6310

警告 C6310: 例外フィルター内の無効な定数は、予期しない動作を発生させる原因となる可能性があります

このメッセージは、構造化例外ハンドラーのフィルター式で不正な定数が検出されたことを示します。構造化例外ハンドラーのフィルター式で使用するために定義された定数を次に示します。

  • EXCEPTION_CONTINUE_EXECUTION

  • EXCEPTION_CONTINUE_SEARCH

  • EXCEPTION_EXECUTE_HANDLER

これらの値は、ランタイム ヘッダー ファイル 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");
  }
}