OpCodes.Endfinally Campo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 finally
throw
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.