共用方式為


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

請參閱

參考

例外狀況處理常式

abort

_get_unexpected

set_terminate (CRT)

terminate (CRT)

unexpected (CRT)