次の方法で共有


警告 C6310

例外フィルターの定数が正しくないと、予期しない動作が発生する可能性があります

解説

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

  • EXCEPTION_CONTINUE_EXECUTION

  • EXCEPTION_CONTINUE_SEARCH

  • EXCEPTION_EXECUTE_HANDLER

これらの値は、ランタイム ヘッダー ファイル excpt.h で定義されています。

上記の一覧にない定数を使用すると、予期しない動作が発生する可能性があります。

コード分析名: ILLEGALEXCEPTEXPRCONST

この警告が発生するコード例を次に示します。

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