Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überträgt die Steuerung aus der fault-Klausel oder finally-Klausel eines Ausnahmeblockes zurück an den CLI-Ausnahmehandler (Common Language Infrastructure).
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Endfinally As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Endfinally
public static readonly OpCode Endfinally
public:
static initonly OpCode Endfinally
public static final OpCode Endfinally
public static final var Endfinally : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
|---|---|---|
DC |
endfinally endfault |
Beendet die finally-Klausel oder fault-Klausel eines Ausnahmeblockes. |
Bei dieser Anweisung treten im Stapel keine Zustandswechsel auf.
Endfinally und endfault signalisieren das Ende der finally-Klausel bzw. fault-Klausel, sodass die Entladung des Stapels bis zum Aufrufen des Ausnahmehandlers fortgesetzt werden kann. Die endfinally-Anweisung oder endfault-Anweisung überträgt die Steuerung zurück an den CLI-Ausnahmemechanismus. Dieser sucht anschließend nach der nächsten finally-Klausel in der Kette, wenn der geschützte Block mit einer Abbruchanweisung beendet wurde. Wenn der geschützte Block mit einer Ausnahme beendet wird, sucht die CLI nach dem nächsten finally oder fault oder führt den Ausnahmehandler aus, der in der ersten Phase der Ausnahmebehandlung ausgewählt wurde.
Eine endfinally-Anweisung kann nur lexikalisch in einem finally-Block enthalten sein. Im Gegensatz zur endfilter-Anweisung muss der Block nicht mit einer endfinally-Anweisung enden. Außerdem kann der Block beliebig viele endfinally-Anweisungen enthalten. Dieselben Einschränkungen gelten für die endfault-Anweisung und den fault-Block.
Die Steuerung kann nur anhand von Ausnahmeverfahren in einen finally-Block (oder fault-Block) übertragen werden. Die Steuerung kann nur durch eine throw-Anweisung oder die endfinally-Anweisung (oder endfault-Anweisung) aus einem finally-Block (oder fault-Block) übertragen werden. Das heißt, dass Sie einen finally-Block (oder fault-Block) nicht ohne weiteres beenden und keine Ret-Anweisung oder Leave-Anweisung in einem finally-Block (oder fault-Block) ausführen können.
Beachten Sie, dass die endfault-Anweisung und endfinally-Anweisung Aliase sind, die sich auf denselben Opcode beziehen.
Die folgende Überladung der Emit-Methode verwendet den endfinally-Opcode (endfault) und die ILGenerator-Methode EndExceptionBlock.
ILGenerator.Emit(OpCode)
ILGenerator.EndExceptionBlock()
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace