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
Tipos derivados (a través de error_logico)
Tipos derivados (a través de runtime_error)
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 |