次の方法で共有


OpCodes.Endfilter フィールド

定義

例外の filter 句から共通言語基盤 (CLI) 例外ハンドラーに制御を転送します。

public: static initonly System::Reflection::Emit::OpCode Endfilter;
public static readonly System.Reflection.Emit.OpCode Endfilter;
 staticval mutable Endfilter : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfilter As OpCode 

フィールド値

注釈

次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単な参照の概要を示します。

形式 アセンブリ形式 説明
FE 11 endfilter SEH 例外処理のフィルター句を終了します。

スタック遷移の動作は、順番に次のようになります。

  1. value がスタックにプッシュされます。

  2. value はスタックからポップされます。 endfilter が実行され、制御が例外ハンドラーに転送されます。

Value (型 int32 である必要があり、特定の値のセットの 1 つです) は、filter 句から返されます。 次のいずれかである必要があります。

  • exception_continue_search (value = 0) 例外ハンドラーの検索を続行する

  • exception_execute_handler (value = 1) このフィルター句に関連付けられているハンドラーが配置されるまで finally ブロックが実行される例外処理の 2 番目のフェーズを開始します。 検出されると、ハンドラーが実行されます。

その他の整数値では、指定されていない結果が生成されます。

メソッドの例外テーブルに示すように、フィルターのエントリ ポイントは、フィルターのコード ブロックの最初の命令である必要があります。 命令は endfilter 、フィルターのコード ブロック内の最後の命令である必要があります (そのため、1 つのフィルター ブロックに対して 1 つだけ endfilter を指定できます)。 命令を実行した後、制御は endfilter 論理的に CLI 例外処理メカニズムに戻ります。

例外メカニズムを使用する場合を除き、制御をフィルター ブロックに転送することはできません。 制御は、命令の使用または最後endfilterの命令の実行を除き、throwフィルター ブロックから転送できません。 ブロック内filterにブロックをtry埋め込むことはできません。 ブロック内 filter で例外がスローされた場合は、インターセプトされ、値 0 (exception_continue_search) が返されます。

Emit のメソッド オーバーロードでは、オペコードを endfilter 使用できます。

適用対象