std::system_error
Материал из cppreference.com
Определено в заголовочном файле <system_error>
|
||
class system_error; |
(начиная с C++11) | |
std::system_error
это тип исключения, генерируемого различными библиотечными функциями (обычно функциями, взаимодействующими со средствами ОС, например конструктором std::thread), когда исключение имеет связанный std::error_code, о котором можно сообщить.
Диаграмма наследования
Содержание |
[править] Функции-элементы
создаёт объект system_error (public функция-элемент) | |
заменяет объект system_error (public функция-элемент) | |
возвращает код ошибки (public функция-элемент) | |
[virtual] |
возвращает поясняющую строку (virtual public функция-элемент) |
Унаследован от std::exception
Функции-элементы
[virtual] |
уничтожает объект исключения (virtual public of std::exception функция-элемент)
|
[virtual] |
возвращает поясняющую строку (virtual public of std::exception функция-элемент)
|
[править] Пример
Запустить этот код
#include <thread> #include <iostream> #include <system_error> int main() { try { std::thread().detach(); // попытка отсоединить не-поток } catch(const std::system_error& e) { std::cout << "Пойман system_error с кодом " << '[' << e.code() << ']' << " означает " << '[' << e.what() << "]\n"; } }
Возможный вывод:
Пойман system_error с кодом [generic:22] означает [Invalid argument]