Udostępnij za pośrednictwem


OpCodes.Endfinally Pole

Definicja

Przenosi kontrolę z fault klauzuli or finally bloku wyjątku z powrotem do programu obsługi wyjątków infrastruktury języka wspólnego (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 

Wartość pola

Uwagi

W poniższej tabeli wymieniono format zestawu szesnastkowy instrukcji i microsoft intermediate language (MSIL) wraz z krótkim podsumowaniem referencyjnym:

Format Format zestawu Opis
DC endfinally

endfault
Kończy klauzulę finally or fault bloku wyjątku.

Nie ma żadnych zachowań przejścia stosu dla tej instrukcji.

Endfinally i endfault sygnalizuj koniec klauzuli finally or fault , aby odwijanie stosu było kontynuowane do momentu wywołania programu obsługi wyjątków. Instrukcja endfinally or endfault przenosi kontrolkę z powrotem do mechanizmu wyjątków interfejsu wiersza polecenia. Następnie mechanizm wyszukuje następną finally klauzulę w łańcuchu, jeśli blok chroniony został opuszczony z instrukcją urlopu. Jeśli blokada chroniona została zakończona z wyjątkiem, interfejs wiersza polecenia wyszuka następny finally lub fault, lub wprowadź procedurę obsługi wyjątków wybraną podczas pierwszego przekazywania obsługi wyjątków.

Instrukcja endfinally może pojawiać się tylko leksykalnie w finally bloku. W przeciwieństwie do instrukcji nie ma wymogu endfilter , aby blok zakończył się instrukcją endfinally i w bloku może znajdować się tyle endfinally instrukcji, ile jest wymaganych. Te same ograniczenia dotyczą instrukcji endfault i fault bloku.

Kontrolki nie można przenieść do finally bloku (lub fault), z wyjątkiem mechanizmu wyjątków. Kontrolki nie można przenieść z finally bloku (lub fault), z wyjątkiem użycia throw instrukcji lub wykonywania endfinally instrukcji (lub endfault). W szczególności nie można "wypadać" z finally bloku (lub fault) ani wykonać Ret instrukcji lub Leave w bloku finally (lub fault).

Należy pamiętać, że endfault instrukcje i endfinally są aliasami — odpowiadają one temu samemu kodowi operacyjnemu.

Następujące Emit przeciążenie metody może używać endfinally kodu opcode (endfault), a także ILGenerator metody EndExceptionBlock.

Dotyczy