current_exception
Obtém um ponteiro inteligente para a exceção atual.
exception_ptr current_exception();
Valor de retorno
Um objeto exception_ptr que aponta para a exceção atual.
Comentários
Chame a função current_exception em um bloco catch. Se uma exceção estiver em voo e o bloco catch puder capturar a exceção, a função current_exception retornará um objeto exception_ptr que faz referência à exceção. Caso contrário, a função retornará um objeto exception_ptr nulo.
A função current_exception captura a exceção que está em voo, independentemente de a instrução catch especificar uma instrução de declaração de exceção.
O destruidor da exceção atual será chamado no fim do bloco catch se você não puder relançar a exceção. No entanto, mesmo que você chame a função current_exception no destruidor, a função retornará um objeto exception_ptr que faz referência à exceção atual.
As chamadas sucessivas à função current_exception retornam objetos exception_ptr que se referem a diferentes cópias da exceção atual. Consequentemente, os objetos são comparados como diferentes, pois se referem a diferentes cópias, mesmo quando as cópias têm o mesmo valor binário.