Biblioteka C ++ - <wyjątek>

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