set_unexpected (CRT)
使用 unexpected 安裝終止函式。
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
參數
- unexpFunction
您要取代 unexpected 函式的函式的指標。
傳回值
讓指標回到 _set_unexpected 註冊的前一個終止函式,讓先前函式可以還原。 如果先前函式未設定,則傳回值可用來還原預設行為;此值可能為 null。
備註
set_unexpected 函式安裝 unexpFunction 做為 unexpected呼叫的函式。 unexpected 不實作於目前的 C++ 例外狀況處理。 unexpected_function 型別以指向回傳 void 的使用者定義的 unexpFunction 函數的指標定義於 EH.H。 您的自訂 unexpFunction 函式不能傳回給其呼叫端。
typedef void ( *unexpected_function )( );
根據預設, unexpected 會呼叫 terminate。 您可以撰寫自己的終止函式和以 set_unexpected 作為引數呼叫您的自訂的函式名稱函數以變更此預設行為。 unexpected會呼叫指定的最後一個函式做為 set_unexpected 的引數。
不同於以呼叫 set_terminate 安裝的自訂終止函式的,可以從 unexpFunction 中擲回例外狀況。
在多執行緒環境中,未預期的函式為每個執行緒分開維護。 每個新執行緒需要安裝它自己的未預期函式。 因此,每個執行緒負責自己的未預期處理。
於目前 Microsoft 實作 C++ 例外狀況處理, unexpected 預設呼叫 terminate ,並不由例外狀況處理執行階段程式庫呼叫。 呼叫 unexpected 而非 terminate 沒有特殊好處。
所有動態連接的 DLL 或 EXE 具有單一 set_unexpected 處理常式;即使您呼叫 set_unexpected 您的處理常式可能由另一個取代或由另一個 DLL 或 EXE 集取代的處理常式。
需求
常式 |
必要的標頭 |
---|---|
set_unexpected |
<eh.h> |
如需其他相容性資訊,請參閱<簡介>中的相容性。
.NET Framework 對等用法
不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例。