OpCodes.Endfinally Campo

Definizione

Trasferisce il controllo dalla fault clausola o finally di un blocco di eccezioni al gestore eccezioni 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 

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly MSIL (Intermediate Language) esadecimale e Microsoft istruzione, insieme a un breve riepilogo di riferimento:

Formato Formato assembly Description
DC endfinally

endfault
Termina la finally clausola o fault di un blocco di eccezioni.

Non esistono comportamenti di transizione dello stack per questa istruzione.

Endfinally e endfault segnalano la fine della finally clausola o fault in modo che la rimozione dello stack possa continuare fino a quando non viene richiamato il gestore eccezioni. L'istruzione endfinally o endfault trasferisce il controllo al meccanismo di eccezione dell'interfaccia della riga di comando. Il meccanismo cerca quindi la clausola successiva finally nella catena se il blocco protetto è stato chiuso con un'istruzione leave. Se il blocco protetto è stato chiuso con un'eccezione, l'interfaccia della riga di comando cercherà il successivo finally o faulto immetterà il gestore eccezioni scelto durante il primo passaggio di gestione delle eccezioni.

Un'istruzione endfinally potrebbe apparire lessicalmente all'interno di un finally blocco. A differenza dell'istruzione endfilter , non esiste alcun requisito che il blocco termina con un'istruzione endfinally e che il numero di endfinally istruzioni all'interno del blocco sia necessario. Queste stesse restrizioni si applicano all'istruzione endfault e al fault blocco .

Il controllo non può essere trasferito in un finally blocco (o fault) ad eccezione del meccanismo di eccezione. Il controllo non può essere trasferito da un finally blocco (o fault) ad eccezione dell'uso di un'istruzione throw o dell'esecuzione dell'istruzione endfinally (o endfault). In particolare, non è possibile "cadere" di un finally blocco (o fault) o per eseguire un'istruzione Ret o Leave all'interno di un finally blocco (o fault).

Si noti che le endfault istruzioni e endfinally sono alias, che corrispondono allo stesso codice operativo.

L'overload del metodo seguente Emit può usare il endfinally codice operativo (endfault) e il ILGenerator metodo EndExceptionBlock.

Si applica a