Share via


AbnormalTermination 宏

指出終止處理常式 的__try 區塊是否正常終止。 函式只能從終止處理常式 的 __finally 區塊內呼叫。

注意

Microsoft C/C++ 優化編譯器會將此函式解譯為關鍵字,並在適當的例外狀況處理語法外部使用會產生編譯器錯誤。

語法

BOOL AbnormalTermination(void);

參數

這個宏沒有參數。

傳回值

如果 __try 區塊異常終止,則傳回值為非零。

如果 __try 區塊正常終止,則傳回值為零。

備註

只有在執行離開區塊之後,在區塊中執行最後一個語句之後, __try 區塊才會正常終止。 語句 (,例如 returngotocontinuebreak) ,導致執行離開 __try 區塊會導致區塊異常終止。 即使這類語句是 __try 區塊中的最後一個語句,也是如此。

__try區塊的異常終止會導致系統向後搜尋所有堆疊框架,以判斷是否必須呼叫任何終止處理常式。 這可能會導致執行數百個指令,因此請務必避免因為returngotocontinuebreak語句而造成__try區塊異常終止。 請注意,即使終止異常,這些語句也不會產生例外狀況。

若要避免異常終止,執行應該會繼續到區塊的結尾。 您也可以執行 __leave 語句。 __leave語句允許立即終止__try區塊,而不會造成異常終止及其效能負面影響。 請檢查您的編譯器檔,以判斷是否支援 __leave 語句。

規格需求

需求
最低支援的用戶端
Windows XP [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2003 [僅限桌面應用程式]

另請參閱

結構化例外狀況處理函式

結構化例外狀況處理概觀