Sdílet prostřednictvím


OpCodes.Endfinally Pole

Definice

Přenese řízení z fault klauzule nebo finally bloku výjimky zpět do obslužné rutiny výjimky common language infrastructure (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 

Hodnota pole

Poznámky

Následující tabulka uvádí hexadecimální formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným souhrnem referenčních informací:

Formát Formát sestavení Description
DC endfinally

endfault
Ukončí klauzuli finally nebo fault bloku výjimky.

Pro tuto instrukci neexistují žádná chování přechodu zásobníku.

Endfinally a endfault signalizují konec klauzule finally or fault tak, aby odvíjení zásobníku bylo možné pokračovat, dokud se nevyvolá obslužná rutina výjimky. Instrukce endfinally nebo endfault přenese řízení zpět do mechanismu výjimek rozhraní příkazového řádku. Mechanismus pak vyhledá další finally klauzuli v řetězci, pokud byl chráněný blok ukončen s pokynem pro opuštění. Pokud byl chráněný blok ukončen s výjimkou, rozhraní příkazového řádku vyhledá další finally nebo fault, nebo zadá obslužnou rutinu výjimky zvolenou při prvním průchodu zpracování výjimek.

Instrukce endfinally se může objevit jen lexicky v rámci finally bloku. endfilter Na rozdíl od této instrukce není vyžadováno, aby blok končil endfinally instrukcemi a v bloku může být endfinally tolik instrukcí, kolik je potřeba. Stejná omezení platí pro endfault instrukce a fault blok.

Ovládací prvek nelze přenést do finally bloku (nebo fault) s výjimkou mechanismu výjimky. Řízení nelze přenést z finally bloku (nebo fault) s výjimkou použití throw instrukce nebo provedení instrukce endfinally (nebo endfault). Konkrétně nemůžete "vypadnout" z finally bloku (nebo fault) nebo provést Ret instrukce nebo Leave v rámci finally bloku (nebo fault).

Všimněte si endfault , že pokyny a endfinally jsou aliasy – odpovídají stejnému opcode.

Následující Emit přetížení metody může použít endfinally opcode (endfault) a také metodu ILGeneratorEndExceptionBlock.

Platí pro