set_unexpected (CRT)
安裝自己的終止函式,由呼叫unexpected。
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
參數
- unexpFunction
您要取代所撰寫的函式指標unexpected函式。
傳回值
傳回先前的終止函式指標所登錄的_set_unexpected ,以便可以在日後還原先前的函式。 如果尚未設定任何先前的函式,傳回的值可以用於還原預設行為。 這個值可能為 NULL。
備註
set_unexpected函式安裝unexpFunction和所呼叫的函式unexpected。 unexpected不會在目前的 C++ 例外處理實作中使用。 unexpected_function型別定義於 EH。為使用者定義的非預期函式,指標 h unexpFunction ,會傳回void。 您的自訂unexpFunction函式不應傳回給其呼叫者。
typedef void ( *unexpected_function )( );
By default, unexpected calls terminate. 您可以變更此預設行為,藉由撰寫自己的終止函式,並呼叫set_unexpected您做為引數的函式的名稱。 unexpected最後一個引數所指定的函式會呼叫set_unexpected。
與自訂的終止函式呼叫來安裝不同的是set_terminate,可以擲回例外狀況,在unexpFunction。
在多執行緒環境中,發生未預期的函式是分別維護每個執行緒的。 每個新的執行緒需要安裝它自己未預期的函式。 因此,每個執行緒是負責自己未預期的處理。
在 C++ 例外處理,目前的 Microsoft 實作unexpected呼叫terminate預設狀況下而且永遠不會呼叫例外處理的執行階段程式庫。 沒有電話沒有特別的優勢unexpected而不是terminate。
沒有單一set_unexpected所有動態連結的 Dll 或 Exe ; 處理常式 即使您呼叫set_unexpected可能會由另一個取代您的處理常式或 DLL 或 EXE,另一個您要取代的處理常式設定。
需求
常式 |
所需的標頭 |
---|---|
set_unexpected |
<eh.h> |
其他的相容性資訊,請參閱相容性在簡介中。
.NET Framework 對等用法
不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例。