current_exception
Obtiene un puntero inteligente a la excepción actual.
exception_ptr current_exception();
Valor devuelto
Objeto exception_ptr que apunta a la excepción actual.
Comentarios
Llame a la función current_exception en un bloque catch. Si una excepción está en vuelo y el bloque catch puede detectarla, la función current_exception devuelve un objeto exception_ptr que hace referencia a la excepción. De lo contrario, la función devuelve un objeto exception_ptr NULL.
La función current_exception captura la excepción que está en vuelo independientemente de si la instrucción catch especifica una instrucción de declaración de excepción o no.
Se llama al destructor de la excepción actual al final del bloque catch si no vuelve a producir la excepción. Sin embargo, incluso aunque llame a la función current_exception en el destructor, la función devuelve un objeto exception_ptr que hace referencia a la excepción actual.
Las llamadas sucesivas a la función current_exception devuelven objetos exception_ptr que hacen referencia a distintas copias de la excepción actual. Por tanto, al comparar los objetos se consideran diferentes porque hacen referencia a copias distintas, incluso aunque las copias tengan el mismo valor binario.