共用方式為


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。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

例外狀況處理常式

abort

_get_unexpected

set_terminate (CRT)

terminate (CRT)

unexpected (CRT)