OpCodes.Endfinally 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將控制權從例外狀況區塊的 fault
或 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 Intermediate Language (MSIL) 元件格式,以及簡短的參考摘要:
格式 | 元件格式 | Description |
---|---|---|
DC | endfinally endfault |
finally 結束例外狀況區塊的 或 fault 子句。 |
此指令沒有堆疊轉換行為。
Endfinally
並endfault
發出 或 fault
子句結尾的finally
訊號,讓堆疊回溯可以繼續,直到叫用例外狀況處理程序為止。
endfinally
或 endfault
指令會將控制權轉移回 CLI 例外狀況機制。 然後,如果受保護的區塊已結束且具有離開指示,則機制會搜尋鏈結中的下一 finally
個子句。 如果受保護的區塊已結束且發生例外狀況,CLI 會搜尋下一個 finally
或 fault
,或輸入在第一次傳遞例外狀況處理期間選擇的例外狀況處理程式。
指令 endfinally
可能只會以語彙方式出現在 區塊內 finally
。
endfilter
不同於指示,區塊結尾不需要指示endfinally
,而且區塊內可以視需要提供許多endfinally
指示。 這些相同的限制適用於 endfault
指令和 fault
區塊。
除非透過例外狀況機制,否則無法將控制權傳送至 finally
(或 fault
) 區塊。 除非透過使用throw
指令或執行 endfinally
(或) 指令,否則無法將控制權移出 finally
(或 fault
endfault
) 區塊。 特別是,您無法「卸除finally
」 (或 fault
) 區塊,或在 (或) 區塊內finally
執行 RetLeave 或 fault
指令。
請注意, endfault
和 endfinally
指令是別名, 它們會對應至相同的 opcode。
下列 Emit 方法多載可以使用 endfinally
() endfault
opcode,以及 ILGenerator
方法 EndExceptionBlock。