Introducción
Es una clase de excepción estándar. Todos los objetos lanzados por componentes de la biblioteca estándar se derivan de esta clase. Por lo tanto, todas las excepciones estándar pueden detectarse capturando este tipo por referencia.
Declaración
A continuación se muestra la declaración para std :: exception.
class exception;
Ejemplo
En el siguiente ejemplo para std :: exception.
#include <thread>
#include <vector>
#include <iostream>
#include <atomic>
std::atomic_flag lock = ATOMIC_FLAG_INIT;
void f(int n) {
for (int cnt = 0; cnt < 100; ++cnt) {
while (lock.test_and_set(std::memory_order_acquire))
;
std::cout << "Output from thread " << n << '\n';
lock.clear(std::memory_order_release);
}
}
int main() {
std::vector<std::thread> v;
for (int n = 0; n < 10; ++n) {
v.emplace_back(f, n);
}
for (auto& t : v) {
t.join();
}
}
Tipos derivados
No Señor. |
Tipos derivados |
Definición |
1 |
bad_alloc |
Esta excepción se lanza cuando falla la asignación de memoria. |
2 |
bad_cast |
Esta excepción se lanza al fallar la transmisión dinámica |
3 |
bad_exception |
Esta es una excepción lanzada por un controlador inesperado |
4 |
bad_function_call |
Esta excepción lanzada en una mala llamada |
5 |
bad_typeid |
Esta excepción lanzada en typeid de puntero nulo |
6 |
bad_weak_ptr |
Es un mal puntero débil |
7 |
ios_base :: falla |
Es una clase base para excepciones de transmisión. |
8 |
error_lógico |
Es una excepción de error lógico |
9 |
Error de tiempo de ejecución |
Es una excepción de error en tiempo de ejecución. |
Tipos derivados (a través de error_logico)
No Señor. |
Tipos derivados |
Definición |
1 |
domain_error |
Es una excepción de error de dominio. |
2 |
future_error |
Es una futura excepción de error. |
3 |
argumento no válido |
Es una excepción de argumento no válido. |
4 |
length_error |
Es una excepción de error de longitud |
5 |
fuera de rango |
Es una excepción fuera de rango |
Tipos derivados (a través de runtime_error)
No Señor. |
Tipos derivados |
Definición |
1 |
overflow_error |
Es una excepción de error de desbordamiento |
2 |
range_error |
Es una excepción de error de rango |
3 |
error del sistema |
Es una excepción de error del sistema. |
4 |
underflow_error |
Es una excepción de error de subdesbordamiento |
Tipos derivados (a través de bad_alloc)
No Señor. |
Tipos derivados |
Definición |
1 |
bad_array_new_length |
Es una excepción en la longitud de matriz incorrecta |
Tipos derivados (a través de system_error, desde C ++ 11)
No Señor. |
Tipos derivados |
Definición |
1 |
ios_base :: falla |
Es una clase base para excepciones de transmisión. |
Funciones de miembro
No Señor. |
Tipos derivados |
Definición |
1 |
(constructor) |
Es una excepción del constructor |
2 |
operador = |
Es una excepción de copia |
3 |
qué |
Se utiliza para obtener una excepción de identificación de cadenas. |
4 |
(incinerador de basuras) |
Es una excepción de destrucción |