Condividi tramite


Typedef <exception>

exception_ptr

Tipo che descrive un puntatore a un'eccezione.

typedef unspecified exception_ptr;

Osservazioni:

Classe interna non specificata utilizzata per implementare il tipo exception_ptr.

Utilizzare un oggetto exception_ptr per fare riferimento all'eccezione corrente o a un'istanza di un'eccezione definita dall'utente. Nell'implementazione Microsoft, un'eccezione è rappresentata da una struttura EXCEPTION_RECORD. Ogni oggetto exception_ptr include un campo di riferimento all'eccezione che punta a una copia della struttura EXCEPTION_RECORD che rappresenta l'eccezione.

Quando si dichiara una variabile exception_ptr, la variabile non è associata ad alcuna eccezione. Ciò significa che il campo di riferimento all'eccezione è NULL. Questo oggetto exception_ptr è denominato null exception_ptr.

Utilizzare la funzione current_exception o make_exception_ptr per assegnare un'eccezione a un oggetto exception_ptr. Quando si assegna un'eccezione a una variabile exception_ptr, il campo di riferimento all'eccezione punta a una copia dell'eccezione. Se la memoria disponibile non è sufficiente per consentire la copia dell'eccezione, il campo di riferimento all'eccezione punta a una copia di un'eccezione std::bad_alloc. Se la current_exception funzione o make_exception_ptr non può copiare l'eccezione per qualsiasi altro motivo, la funzione chiama la terminate funzione CRT per uscire dal processo corrente.

Malgrado il nome, un oggetto exception_ptr non è un puntatore. Non obbedisce alla semantica dei puntatori e non può essere usato con gli operatori di accesso ai membri del puntatore (->) o gli operatori di riferimento indiretto (*). L'oggetto exception_ptr non dispone di membri dati pubblici o di funzioni membro.

Confronti:

È possibile usare gli operatori uguale (==) e non uguale (!=) per confrontare due oggetti exception_ptr. Gli operatori non confrontano il valore binario (schema di bit) delle strutture EXCEPTION_RECORD che rappresentano le eccezioni. Viceversa, gli operatori confrontano gli indirizzi del campo di riferimento all'eccezione degli oggetti exception_ptr. Di conseguenza, l'elemento exception_ptr Null e il valore NULL vengono considerati uguali.

terminate_handler

Il tipo descrive un puntatore a una funzione che è possibile utilizzare come terminate_handler.

typedef void (*terminate_handler)();

Osservazioni:

Il tipo descrive un puntatore a una funzione che è possibile utilizzare come gestore di terminazione.

Esempio

Per un esempio dell'utilizzo di terminate_handler, vedere set_terminate.

unexpected_handler

Il tipo descrive un puntatore a una funzione che è possibile usare come unexpected_handler.

typedef void (*unexpected_handler)();

Esempio

Per un esempio dell'utilizzo di unexpected_handler, vedere set_unexpected.