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