Introdução
É uma classe de exceção padrão. Todos os objetos lançados por componentes da biblioteca padrão são derivados desta classe. Portanto, todas as exceções padrão podem ser capturadas capturando este tipo por referência.
Declaração
A seguir está a declaração para std :: exception.
class exception;
Exemplo
No exemplo abaixo 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
Sr. Não. |
Tipos derivados |
Definição |
1 |
bad_alloc |
Esta exceção lançada na falha de alocação de memória |
2 |
bad_cast |
Esta exceção lançada na falha de elenco dinâmico |
3 |
bad_exception |
Esta é uma exceção lançada por um manipulador inesperado |
4 |
bad_function_call |
Esta exceção lançada em uma chamada ruim |
5 |
bad_typeid |
Esta exceção lançada em typeid de ponteiro nulo |
6 |
bad_weak_ptr |
É um indicador fraco e ruim |
7 |
ios_base :: falha |
É uma classe base para exceções de fluxo |
8 |
erro_lógico |
É uma exceção de erro lógico |
9 |
runtime_error |
É uma exceção de erro de tempo de execução |
Tipos derivados (por meio de logic_error)
Sr. Não. |
Tipos derivados |
Definição |
1 |
domain_error |
É uma exceção de erro de domínio |
2 |
futuro_error |
É uma exceção de erro futuro |
3 |
argumento inválido |
É uma exceção de argumento inválido |
4 |
comprimento_error |
É uma exceção de erro de comprimento |
5 |
fora de alcance |
É uma exceção fora do intervalo |
Tipos derivados (por meio de runtime_error)
Sr. Não. |
Tipos derivados |
Definição |
1 |
overflow_error |
É uma exceção de erro de estouro |
2 |
range_error |
É uma exceção de erro de intervalo |
3 |
erro no sistema |
É uma exceção de erro do sistema |
4 |
underflow_error |
É uma exceção de erro de underflow |
Tipos derivados (por meio de bad_alloc)
Sr. Não. |
Tipos derivados |
Definição |
1 |
bad_array_new_length |
É uma exceção para comprimentos de array inválidos |
Tipos derivados (por meio de system_error, desde C ++ 11)
Sr. Não. |
Tipos derivados |
Definição |
1 |
ios_base :: falha |
É uma classe base para exceções de fluxo |
Funções de membro
Sr. Não. |
Tipos derivados |
Definição |
1 |
(construtor) |
É uma exceção de construtor |
2 |
operador = |
É uma exceção de cópia |
3 |
o que |
É usado para obter exceção de identificação de string |
4 |
(destruidor) |
É uma exceção de destruição |