Share via


OpCodes.Endfinally 欄位

定義

將控制權從例外狀況區塊的 faultfinally 子句傳回 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 Intermediate Language (MSIL) 元件格式,以及簡短的參考摘要:

格式 元件格式 Description
DC endfinally

endfault
finally結束例外狀況區塊的 或 fault 子句。

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

Endfinallyendfault發出 或 fault 子句結尾的finally訊號,讓堆疊回溯可以繼續,直到叫用例外狀況處理程序為止。 endfinallyendfault 指令會將控制權轉移回 CLI 例外狀況機制。 然後,如果受保護的區塊已結束且具有離開指示,則機制會搜尋鏈結中的下一 finally 個子句。 如果受保護的區塊已結束且發生例外狀況,CLI 會搜尋下一個 finallyfault,或輸入在第一次傳遞例外狀況處理期間選擇的例外狀況處理程式。

指令 endfinally 可能只會以語彙方式出現在 區塊內 finallyendfilter不同於指示,區塊結尾不需要指示endfinally,而且區塊內可以視需要提供許多endfinally指示。 這些相同的限制適用於 endfault 指令和 fault 區塊。

除非透過例外狀況機制,否則無法將控制權傳送至 finally (或 fault) 區塊。 除非透過使用throw指令或執行 endfinally (或) 指令,否則無法將控制權移出 finally (或 faultendfault) 區塊。 特別是,您無法「卸除finally」 (或 fault) 區塊,或在 (或) 區塊內finally執行 RetLeavefault 指令。

請注意, endfaultendfinally 指令是別名, 它們會對應至相同的 opcode。

下列 Emit 方法多載可以使用 endfinally () endfault opcode,以及 ILGenerator 方法 EndExceptionBlock

適用於