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]