uncaught_exception

Retourne true uniquement si une exception est actuellement traitée.

bool uncaught_exception( );

Valeur de retour

Retourne true après avoir terminé l'évaluation d'une expression throw et avant d'effectuer l'initialisation de la déclaration d'exception dans le gestionnaire correspondant ou appeler inattendu résultant de l'expression throw.En particulier, uncaught_exception retourne true lorsque l'appel d'un destructeur appelé pendant un déroulement d'exception.Sur les appareils, uncaught_exception est pris en charge uniquement sur les Windows 5,00 et les versions les plus élevées, notamment Windows Mobile plateformes 2005.

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>

l'espace de noms : DST