uncaught_exception
Retourne true uniquement si une exception levée est actuellement traité.
bool uncaught_exception( );
Valeur de retour
Retourne true après avoir terminé l'évaluation d'une expression jet et avant la fin de l'initialisation de la déclaration d'exception dans le gestionnaire de correspondance soit appeler inattendu suite à l'expression pour jet. En particulier, uncaught_exception retourne true lorsque l'appel est effectué d'un destructeur qui est appelé pendant le déroulement d'exception. Sur les unités, uncaught_exception est pris en charge sur Windows CE 5,00 et les versions ultérieures, notamment Windows Mobile 2005 plateformes.
Exemple
// exception_uncaught_exception.cpp
// compile with: /EHsc
#include <exception>
#include <iostream>
#include <string>
class Test
{
public:
Test( std::string msg ) : m_msg( msg )
{
std::cout << "In Test::Test(\"" << m_msg << "\")" << std::endl;
}
~Test( )
{
std::cout << "In Test::~Test(\"" << m_msg << "\")" << std::endl
<< " std::uncaught_exception( ) = "
<< std::uncaught_exception( )
<< std::endl;
}
private:
std::string m_msg;
};
// uncaught_exception will be true in the destructor
// for the object created inside the try block because
// the destructor is being called as part of the unwind.
int main( void )
{
Test t1( "outside try block" );
try
{
Test t2( "inside try block" );
throw 1;
}
catch (...) {
}
}
Configuration requise
En-Tête <exception>
Espace de noms : std