Wprowadzenie
Jest to standardowa klasa wyjątków. Wszystkie obiekty wyrzucane przez komponenty biblioteki standardowej pochodzą z tej klasy. Dlatego wszystkie standardowe wyjątki można przechwycić, przechwytując ten typ przez odwołanie.
Deklaracja
Poniżej znajduje się deklaracja dla std :: wyjątek.
class exception;
Przykład
W poniższym przykładzie dla std :: wyjątek.
#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();
}
}
Typy pochodne
Sr.No. |
Typy pochodne |
Definicja |
1 |
bad_alloc |
Ten wyjątek zgłoszony w przypadku niepowodzenia alokacji pamięci |
2 |
bad_cast |
Ten wyjątek zgłoszony w przypadku niepowodzenia rzutowania dynamicznego |
3 |
zły_ wyjątek |
To wyjątek zgłoszony przez nieoczekiwaną procedurę obsługi |
4 |
bad_function_call |
Ten wyjątek zgłoszony przy złym wezwaniu |
5 |
bad_typeid |
Ten wyjątek zgłoszony dla typeid wskaźnika null |
6 |
bad_weak_ptr |
To zły, słaby wskaźnik |
7 |
ios_base :: awaria |
Jest to klasa bazowa dla wyjątków strumieni |
8 |
logic_error |
Jest to wyjątek błędu logicznego |
9 |
błąd runtime_error |
Jest to wyjątek błędu czasu wykonania |
Typy pochodne (poprzez logic_error)
Sr.No. |
Typy pochodne |
Definicja |
1 |
domain_error |
Jest to wyjątek błędu domeny |
2 |
Future_error |
To jest przyszły wyjątek błędu |
3 |
błędny argument |
Jest to wyjątek dotyczący nieprawidłowego argumentu |
4 |
length_error |
Jest to wyjątek od błędu długości |
5 |
poza zakresem |
Jest to wyjątek poza zakresem |
Typy pochodne (poprzez runtime_error)
Sr.No. |
Typy pochodne |
Definicja |
1 |
overflow_error |
Jest to wyjątek błędu przepełnienia |
2 |
range_error |
Jest to wyjątek od błędu zakresu |
3 |
błąd systemu |
Jest to wyjątek błędu systemu |
4 |
underflow_error |
Jest to wyjątek błędu niedomiaru |
Typy pochodne (poprzez bad_alloc)
Sr.No. |
Typy pochodne |
Definicja |
1 |
bad_array_new_length |
Jest to wyjątek w przypadku złej długości tablicy |
Typy pochodne (poprzez system_error, od C ++ 11)
Sr.No. |
Typy pochodne |
Definicja |
1 |
ios_base :: awaria |
Jest to klasa bazowa dla wyjątków strumieni |
Funkcje składowe
Sr.No. |
Typy pochodne |
Definicja |
1 |
(konstruktor) |
Jest to wyjątek konstruktora |
2 |
operator = |
To wyjątek dotyczący kopiowania |
3 |
co |
Służy do pobierania łańcucha identyfikującego wyjątek |
4 |
(burzyciel) |
To jest wyjątek zniszczenia |