Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

uncaught_exception

 

Devuelve true sólo si una excepción se está procesando actualmente.


bool uncaught_exception( );

Devuelve true después de completar la evaluación de una expresión throw y antes de completar la inicialización de la declaración de excepción en el controlador coincidente o llamando a inesperado como resultado de la expresión throw.En particular, uncaught_exception devolverá true cuando se llama del destructor que se está invocando durante una excepción desenredo.En los dispositivos, uncaught_exception sólo se admite en Windows CE 5,00 y versiones más altas, incluidos Windows Mobile 2005 plataformas.

// 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 (...) {
   }
}
En Test::Test (“try fuera de bloque”)
En Test::Test (“try dentro de bloque”)
En Test::~Test (“try dentro de bloque”)
        std::uncaught_exception () = 1
En Test::~Test (“try fuera de bloque”)
        std::uncaught_exception () = 0

Requisitos

Encabezado: <exception>

Espacio de nombres: std

Mostrar: