std::bad_alloc
| 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.
Inheritance diagram
Funciones miembro
(constructor) |
Construye un nuevo objeto bad_alloc. (función miembro pública) |
operator= |
Reemplaza el objeto bad_alloc. (función miembro pública) |
what |
Devuelve la cadena aclaratoria. (función miembro pública) |
std::bad_alloc::bad_alloc
<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>| (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().
*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 que copiar. |
std::bad_alloc::operator=
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody> 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 con el de other. Si tanto *this como other tienen el 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 | - | Otro objeto excepción con el cual asignar. |
Valor de retorno
*this
std::bad_alloc::what
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody> virtual const char* what() const throw(); |
(hasta C++11) | |
virtual const char* what() const noexcept; |
(desde C++11) | |
Devuelve la cadena aclaratoria.
Parámetros
(Ninguno)
Valor de retorno
Un puntero a una cadena terminada en nulo con información aclaratoria. La cadena es adecuada para convertirse y mostrarse como un std::wstring. Se garantiza que el puntero sea válido al menos hasta que el objeto excepción del cual se obtuvo se destruya, o hasta que una función miembro no const (p. ej., el operador de asignación de copia) se llame en el objeto excepción.
Notas
Se permite, pero no se requiere, que las implementaciones redefinan a what().
Heredado de std::exception
Funciones miembro
[virtual] |
Destruye el objeto 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)
|
Ejemplo
#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
Véase también
| Funciones de asignación. (función) |