uncaught_exception
Gibt true nur zurück, wenn eine ausgelöste Ausnahme gerade verarbeitet wird.
bool uncaught_exception( );
Rückgabewert
Gibt true, nachdem Auswertung eines Wurfsausdrucks abgeschlossen wurde und bevor Initialisierung der Ausnahmedeklaration im entsprechenden Handler abgeschlossen ist oder unerwartet 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 für 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: <Ausnahme>
Namespace: std