std::bad_alloc
De cppreference.com
| Definido en el archivo de encabezado <new>
|
||
| class bad_alloc; |
||
std::bad_alloc es el tipo de objeto lanzado como una excepción por las funciones de asignación de memoria para reportar una falla al asignar almacenamiento.
Contenido |
[editar] Funciones miembro
| (constructor) |
Construye un nuevo objeto bad_alloc. (función miembro pública) |
| operator= |
Reemplaza al objeto bad_alloc. (función miembro pública) |
| what |
Devuelve una cadena aclaratoria (función miembro pública) |
std::bad_alloc::bad_alloc
| (1) | ||
| bad_alloc() throw(); |
(hasta C++11) | |
| bad_alloc() noexcept; |
(desde C++11) | |
| (2) | ||
| bad_alloc( const bad_alloc& other ) throw(); |
(hasta C++11) | |
| bad_alloc( const bad_alloc& other ) noexcept; |
(desde C++11) | |
Construye un nuevo objeto bad_alloc con una cadena de bytes terminada en nulo definida por la implementación, que es accesible a través de what().
1) Constructor por defecto.
2) Constructor de copia. Si tanto
*this como other tienen un tipo dinámico std::bad_alloc, entonces std::strcmp(what(), other.what()) == 0. (desde C++11)Parámetros
| other | - | El otro objeto de excepción del cual copiar. |
std::bad_alloc::operator=
| bad_alloc& operator=( const bad_alloc& other ) throw(); |
(hasta C++11) | |
| bad_alloc& operator=( const bad_alloc& other ) noexcept; |
(desde C++11) | |
Asigna el contenido de other. Si tanto *this como other tienen un tipo dinámico std::bad_alloc, entonces std::strcmp(what(), other.what()) == 0 después de la asignación. (desde C++11)
Parámetros
| other | - | El otro objeto de excepción del cual asignar. |
Valor de retorno
*this
std::bad_alloc::what
| virtual const char* what() const throw(); |
(hasta C++11) | |
| virtual const char* what() const noexcept; |
(desde C++11) | |
Devuelve una cadena aclaratoria.
Parámetros
(Ninguno)
Valor de retorno
Puntero a una cadena terminada en nulo con información aclaratoria.
Heredado de std::exception
Funciones miembro
| [virtual] |
Destruye el objeto de excepción. (función miembro virtual pública de std::exception)
|
| [virtual] |
Devuelve una cadena aclaratoria. (función miembro virtual pública de std::exception)
|
Heredado de std::exception
Funciones miembro
| [virtual] |
Destruye el objeto de excepción. (función miembro virtual pública de std::exception)
|
| [virtual] |
Devuelve una cadena aclaratoria. (función miembro virtual pública de std::exception)
|
[editar] Ejemplo
Ejecuta este código
#include <iostream> #include <new> int main() { try { while (true) { new int[100000000ul]; } } catch (const std::bad_alloc& e) { std::cout << "Falla al asignar memoria: " << e.what() << '\n'; } }
Posible salida:
Falla al asignar memoria: std::bad_alloc
[editar] Véase también
| Funciones de asignación. (función) |
