Freigeben über


uncaught_exception

Gibt true zurück, wenn eine Ausnahme gerade verarbeitet wird.

bool uncaught_exception( );

Rückgabewert

EINGABETASTE, nachdem true Auswertung eines Wurfsausdrucks abgeschlossen wurde und bevor der Initialisierung Ausnahmedeklaration im entsprechenden Handler oder unerwartet abgeschlossen wird aufgrund des Wurfsausdrucks aufgerufen wird. Insbesondere gibt uncaught_exceptiontrue zurück, wenn sie von einem Destruktor aufgerufen wird, der während einer Ausnahmeentladung aufgerufen wird. Auf Geräten wird uncaught_exception nur auf Windows CE 5.00 und höhere Versionen, einschließlich Windows Mobile 2005-Plattformen unterstützt.

Beispiel

// 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 (...) {
   }
}
  

Anforderungen

Header: <exception>

Namespace: std