Библиотека C ++ - <исключение>

Введение

Это стандартный класс исключения. Все объекты, создаваемые компонентами стандартной библиотеки, являются производными от этого класса. Следовательно, все стандартные исключения могут быть перехвачены путем перехвата этого типа по ссылке.

Декларация

Ниже приводится объявление для std :: exception.

class exception;

пример

В приведенном ниже примере для 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();
   }
}

Производные типы

Sr. No. Производные типы Определение
1 bad_alloc Это исключение возникает при сбое выделения памяти
2 bad_cast Это исключение возникает при сбое динамического приведения
3 bad_exception Это исключение, созданное неожиданным обработчиком
4 bad_function_call Это исключение возникает при неправильном вызове
5 bad_typeid Это исключение выбрано для typeid нулевого указателя
6 bad_weak_ptr Плохой слабый указатель
7 ios_base :: failure Это базовый класс для исключений потока
8 logic_error Это исключение логической ошибки
9 ошибка выполнения Это исключение ошибки времени выполнения

Производные типы (через logic_error)

Sr. No. Производные типы Определение
1 domain_error Это исключение из ошибки домена
2 future_error Это исключение из будущей ошибки
3 недействительным аргумент Это недопустимое исключение аргумента
4 length_error Это исключение из-за ошибки длины
5 вне диапазона Это исключение за пределами допустимого диапазона

Производные типы (через runtime_error)

Sr. No. Производные типы Определение
1 overflow_error Это исключение ошибки переполнения
2 range_error Это исключение из ошибки диапазона
3 системная ошибка Это исключение из системной ошибки
4 underflow_error Это исключение ошибки недостаточного заполнения

Производные типы (через bad_alloc)

Sr. No. Производные типы Определение
1 bad_array_new_length Это исключение для неверной длины массива

Производные типы (через system_error, начиная с C ++ 11)

Sr. No. Производные типы Определение
1 ios_base :: failure Это базовый класс для исключений потока

Функции-члены

Sr. No. Производные типы Определение
1 (конструктор) Это исключение конструктора
2 оператор = Это исключение для копирования
3 какие Он используется для получения исключения, идентифицирующего строку
4 (деструктор) Это исключение для уничтожения