警告 C6318
__try
/__except
定義されていません: 例外フィルター式で 0 に評価される定数 EXCEPTION_CONTINUE_Standard Edition ARCH または別の定数を使用します。 例外ハンドラー ブロックのコードは実行されません
解説
この警告は、この構造化例外ハンドラーの保護されたブロックで例外が発生した場合、例外フィルター式で定数 EXCECPTION_CONTINUE_SEARCH
が使用されるため、例外は処理されません。
このコードは、ハンドラー ブロックが実行されないため、例外ハンドラー ブロックのない保護されたブロックと同じです。
コード分析名: EXCEPTIONCONTINUESEARCH
例
この警告が発生するコード例を次に示します。
#include <excpt.h>
#include <stdio.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except (EXCEPTION_CONTINUE_SEARCH) // warning C6318
{
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");
}
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示