Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
exception_ptr
Typ, který popisuje ukazatele na výjimku.
typedef unspecified exception_ptr;
Poznámky
Nezadaná interní třída, která se používá k implementaci exception_ptr typu.
Pomocí objektu exception_ptr můžete odkazovat na aktuální výjimku nebo instanci uživatelem zadané výjimky. V implementaci Microsoftu je výjimka reprezentována EXCEPTION_RECORD strukturou. Každý exception_ptr objekt obsahuje referenční pole výjimky, které odkazuje na kopii EXCEPTION_RECORD struktury, která představuje výjimku.
Když deklarujete proměnnou exception_ptr , proměnná není přidružena k žádné výjimce. Tedy referenční pole výjimky je NULL.
exception_ptr Takový objekt se nazývá null exception_ptr.
current_exception Pomocí funkce můžete make_exception_ptr objektu přiřadit výjimkuexception_ptr. Když přiřadíte výjimku proměnné exception_ptr , odkaz na pole odkazu na výjimku proměnné odkazuje na kopii výjimky. Pokud není dostatek paměti ke zkopírování výjimky, odkazuje referenční pole výjimky na kopii std ::bad_alloc výjimka.
current_exception Pokud funkce make_exception_ptr nemůže zkopírovat výjimku z jiného důvodu, volá terminate funkci CRT, aby ukončila aktuální proces.
I přes jeho název exception_ptr není objekt sám o sobě ukazatelem. Neposlouchá sémantiku ukazatele a nelze ji použít s operátory přístupu ke členu ukazatele (->) nebo nepřímým operátorem (*). Objekt exception_ptr nemá žádné veřejné datové členy ani členské funkce.
Porovnání:
K porovnání dvou == objektů můžete použít operátory equal (!=) a not-equal (exception_ptr). Operátory nerovnají binární hodnotu (bitový vzor) EXCEPTION_RECORD struktur, které představují výjimky. Místo toho operátory porovnávají adresy v referenčním poli exception_ptr výjimky objektů. V důsledku toho se hodnota null exception_ptr a hodnota NULL porovnávají jako rovna.
terminate_handler
Typ popisuje ukazatel na funkci, která je vhodná pro použití jako .terminate_handler
typedef void (*terminate_handler)();
Poznámky
Typ, který popisuje ukazatele na funkci vhodný pro použití jako obslužná rutina ukončení.
Příklad
unexpected_handler
Typ popisuje ukazatel na funkci, která je vhodná pro použití jako .unexpected_handler
typedef void (*unexpected_handler)();
Příklad
Podívejte se na set_unexpected příklad použití unexpected_handler.