OpCodes.Endfinally フィールド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
例外ブロックの fault
句または finally
句から共通言語基盤 (CLI) 例外ハンドラーに制御を転送します。
public: static initonly System::Reflection::Emit::OpCode Endfinally;
public static readonly System.Reflection.Emit.OpCode Endfinally;
staticval mutable Endfinally : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfinally As OpCode
フィールド値
注釈
次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単な参照の概要を示します。
形式 | アセンブリ形式 | 説明 |
---|---|---|
DC | endfinally endfault |
例外ブロックの finally または fault 句を終了します。 |
この命令にはスタック遷移の動作はありません。
Endfinally
と endfault
は、例外ハンドラーが呼び出されるまでスタック アンワインドを続行できるように、 句または fault
句の末尾finally
を通知します。 または endfault
命令はendfinally
、制御を CLI 例外メカニズムに戻します。 その後、保護されたブロックが leave 命令で終了した場合、メカニズムはチェーン内の次 finally
の句を検索します。 保護されたブロックが例外で終了した場合、CLI は次 finally
の または fault
を検索するか、例外処理の最初のパスで選択した例外ハンドラーを入力します。
命令は endfinally
、ブロック内でのみ構文的に finally
表示される場合があります。
endfilter
命令とは異なり、ブロックが命令でendfinally
終わるという要件はなく、ブロック内には必要な数endfinally
の命令を含めることができます。 これらの同じ制限が命令とブロックにfault
適用されますendfault
。
例外メカニズムを使用する場合を除き、制御を finally
(または fault
) ブロックに転送することはできません。 命令の使用または (または endfault
) 命令のfinally
実行endfinally
を除き、制御を throw
(または fault
) ブロックから転送することはできません。 特に、 (または ) ブロックから finally
"フォールアウト" したり、 (または fault
) ブロック内で Ret または Leave 命令を finally
実行したり fault
することはできません。
と endfinally
のendfault
命令はエイリアスであり、同じオペコードに対応しています。
次Emitのメソッド オーバーロードでは、(endfault
) オペコードと メソッド EndExceptionBlockをILGenerator
使用endfinally
できます。
適用対象
.NET