共用方式為


<exception>typedef</exception>

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

exception_ptr terminate_handler unexpected_handler

exception_ptr

描述例外狀況指標的類型。

typedef unspecified exception_ptr;

備註

用於實作 exception_ptr 類型的未指定內部類別。

利用 exception_ptr 物件參考目前的例外狀況或使用者指定的例外狀況執行個體。 在 Microsoft 實作中,例外狀況由EXCEPTION_RECORD結構。 每個 exception_ptr 物件均包含一個例外狀況參考欄位,指向代表該例外狀況的 EXCEPTION_RECORD 結構複本。

當您宣告 exception_ptr 變數時,此變數尚未關聯任何例外狀況。 也就是說,其例外狀況參考欄位為 NULL。 這類exception_ptr物件稱為null exception_ptr

利用 current_exceptionmake_exception_ptr 函式將例外狀況指派給 exception_ptr 物件。 當您將例外狀況指派給 exception_ptr 變數時,此變數的例外狀況參考欄位會指向該例外狀況的複本。 如果有記憶體不足,無法複製該例外狀況,例外狀況參考欄位會指向一份std:: bad_alloc例外狀況。 如果current_exceptionmake_exception_ptr函式不能複製該例外狀況,因為其他任何原因,函式呼叫終止CRT 函式,以結束目前的處理程序。

exception_ptr 物件本身並不是指標 (儘管其名稱如此)。 它不遵守指標語意,並不能搭配指標成員存取 ( ->) 或間接取值 (*) 運算子。 exception_ptr 物件沒有公用資料成員或成員函式。

比較︰

您可以使用等於 ( ==) 和不等於 ( !=) 運算子比較兩個exception_ptr物件。 運算子不會比較代表例外狀況之 EXCEPTION_RECORD 結構的二進位值 (位元模式)。 相反地,運算子會比較 exception_ptr 物件的例外狀況參考欄位位址。 因此,Null exception_ptr 和 Null 值的比較結果是相等。

terminate_handler

此類型描述適合做為 terminate_handler 之函式的指標。

typedef void (*terminate_handler)();

備註

此類型描述適合做為終止處理常式之函式的指標。

範例

請參閱set_terminate的使用範例terminate_handler

unexpected_handler

此類型描述適合做為函式的指標unexpected_handler

typedef void (*unexpected_handler)();

範例

請參閱set_unexpected的使用範例unexpected_handler

另請參閱

<>>