次の方法で共有


C6318

警告 C6318: 正しく定義されていない __try および __except です: 定数 EXCEPTION_CONTINUE_SEARCH または例外フィルター式で 0 に評価される別の定数が使用されています。例外ハンドラー ブロックのコードは実行されません

この警告は、この構造化例外ハンドラーの保護されたブロックで例外が発生した場合、定数 EXCECPTION_CONTINUE_SEARCH が例外フィルター式で使用されているために、例外は処理されないことを示します。

このコードでは、ハンドラー ブロックは実行されないので、例外ハンドラー ブロックなしの保護されたブロックと等価です。

使用例

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

#include <excpt.h>
#include <stdio.h>

void f (char *pch)
{
  __try 
  {
    // assignment might fail
    *pch = 0;
  } 
  __except (EXCEPTION_CONTINUE_SEARCH) // warning 6318
  {
    puts("Exception Occurred");
  }
}

この警告を解決するには、次のコードを使用します。

#include <excpt.h>
#include <stdio.h>
#include <windows.h>

void f (char *pch)
{
  __try 
  {
    // assignment might fail
    *pch = 0;
  } 
  __except( (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) ?
                EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
  {
    puts("Access violation");
  }
} 

参照

関連項目

try-except ステートメント