Condividi tramite


OpCodes.Endfinally Campo

Definizione

Trasferisce il controllo dalla clausola fault o finally di un blocco di eccezioni al gestore di eccezioni di 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 dell'assembly esadecimale e Microsoft Intermediate Language (MSIL), insieme a un breve riepilogo di riferimento:

Formato Formato assembly Descrizione
DC endfinally

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

Per questa istruzione non sono presenti comportamenti di transizione dello stack.

Endfinally e endfault segnalare la fine della finally clausola o fault in modo che lo stack di rimozione 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 di uscita. Se il blocco protetto è stato chiuso con un'eccezione, l'interfaccia della riga di comando cercherà il gestore di eccezioni successivo finally o fault, oppure immettere il gestore di eccezioni scelto durante il primo passaggio di gestione delle eccezioni.

Un'istruzione endfinally potrebbe essere visualizzata solo in modo lessicale 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 possa essere presente il numero di endfinally istruzioni all'interno del blocco in base alle esigenze. Queste stesse restrizioni si applicano all'istruzione endfault e al fault blocco.

Impossibile trasferire il controllo in un finally blocco (o fault) tranne tramite il meccanismo di eccezione. Il controllo non può essere trasferito da un blocco (o ) tranne tramite l'uso di un'istruzione finallythrow o l'esecuzione dell'istruzione endfinally (o endfault).fault 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: corrispondono allo stesso codice opcode.

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

Si applica a