Freigeben über


OpCodes.Endfinally Feld

Definition

Überträgt die Steuerung aus der fault-Klausel oder finally-Klausel eines Ausnahmeblockes zurück an den CLI-Ausnahmehandler (Common Language Infrastructure).

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 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
SL endfinally

endfault
Beendet die finally -Klausel oder fault eines Ausnahmeblocks.

Für diese Anweisung gibt es keine Stapelübergangsverhalten.

Endfinally und endfault signalisieren das Ende der finally -Klausel oder fault , sodass die Stapelentladung fortgesetzt werden kann, bis der Ausnahmehandler aufgerufen wird. Die endfinally -Anweisung oder endfault überträgt die Steuerung zurück an den CLI-Ausnahmemechanismus. Der Mechanismus sucht dann nach der nächsten finally Klausel in der Kette, wenn der geschützte Block mit einer Leave-Anweisung beendet wurde. Wenn der geschützte Block mit einer Ausnahme beendet wurde, sucht die CLI nach dem nächsten finally oder oder faultoder gibt den Ausnahmehandler ein, der während des ersten Durchlaufs der Ausnahmebehandlung ausgewählt wurde.

Eine endfinally Anweisung kann nur lexikalisch innerhalb eines finally Blocks angezeigt werden. endfilter Im Gegensatz zur -Anweisung ist es nicht erforderlich, dass der Block mit einer endfinally Anweisung endet, und es können so viele endfinally Anweisungen im Block wie erforderlich vorhanden sein. Dieselben Einschränkungen gelten für die endfault Anweisung und den fault Block.

Das Steuerelement kann nicht in einen finally (oder fault) -Block übertragen werden, außer über den Ausnahmemechanismus. Das Steuerelement kann nicht aus einem finally (oder fault) -Block übertragen werden, es sei denn, es wird eine throw Anweisung verwendet oder die endfinally Anweisung (oder endfault) ausgeführt. Insbesondere können Sie nicht aus einem finally (oder fault) Block "herausfallen" oder eine - oder Leave -RetAnweisung innerhalb eines finally -Blocks (oder fault) ausführen.

Beachten Sie, dass die endfault Anweisungen und endfinally Aliase sind – sie entsprechen demselben Opcode.

Die folgende Emit Methodenüberladung kann den endfinally Opcode (endfault) sowie die ILGenerator -Methode EndExceptionBlockverwenden.

Gilt für: