OpCodes.Endfinally 欄位

定義

將例外 fault 區塊的 OR finally 子句控制權轉移回 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 

欄位值

備註

下表列出指令的十六進位及 Microsoft 中介語言(MSIL)組合格式,並附有簡短參考摘要:

Format 組裝格式 Description
DC 終於

端錯
結束 finally 例外區塊的 OR fault 子句。

此指令沒有堆疊轉換行為。

Endfinallyendfault標示 OR finally 子句結束fault,使堆疊解開能持續直到異常處理程序被呼叫。 endfinally OR endfault 指令將控制權轉回 CLI 例外機制。 如果受保護區塊以 leave 指令退出,機制會搜尋鏈中的下一個 finally 子句。 若受保護區塊以例外退出,CLI 會搜尋下一個 finallyfault,或輸入在首次例外處理中選擇的例外處理程序。

指令 endfinally 可能只在區塊內 finally 以詞彙形式出現。 與指令不同 endfilter ,區塊不要求以指令結尾 endfinally ,且區塊內可包含任意多 endfinally 條指令。 這些限制同樣適用於 endfault 指令和 fault 區塊。

控制權只能透過例外機制轉移到( finallyfault)區塊中。 控制權無法從(finallyfault)區塊轉移,除非透過指令throw或執行endfinallyendfault該指令。 特別是,你不能「脫離」finally一個(或fault)區塊,也無法在該RetLeave區塊內執行finally一個或指令fault

請注意 endfault ,和 endfinally 指令是別名——它們對應的是相同的操作碼。

以下 Emit 方法的超載可使用 endfinallyendfault) 操作碼,以及 ILGenerator 方法 EndExceptionBlock

適用於