РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
591 of 815 menu

Класс system_error

Класс system_error является исключением, которое наследуется от runtime_error и предназначено для представления ошибок, связанных с операционной системой или низкоуровневыми библиотеками. Это исключение хранит внутри себя объект error_code, который содержит числовой код ошибки и категорию, к которой эта ошибка относится. В конструктор можно передать готовый error_code, либо код ошибки и категорию, а также дополнительное строковое сообщение.

Синтаксис

class system_error : public runtime_error; system_error(const error_code& ec); system_error(const error_code& ec, const string& what_arg); system_error(int ev, const error_category& ecat); system_error(int ev, const error_category& ecat, const string& what_arg);

Пример

Давайте создадим исключение system_error, передав в него код ошибки и категорию, а затем перехватим его и выведем описание:

#include <iostream> #include <system_error> using namespace std; int main() { try { throw system_error(2, generic_category(), "file not found"); } catch (const system_error& e) { cout << e.what() << endl; cout << e.code().value() << endl; } return 0; }

Результат выполнения кода:

"file not found: No such file or directory" 2

Пример

Давайте создадим исключение system_error с помощью объекта error_code и выведем его сообщение через метод message:

#include <iostream> #include <system_error> using namespace std; int main() { error_code ec = make_error_code(errc::permission_denied); try { throw system_error(ec); } catch (const system_error& e) { cout << e.code().message() << endl; } return 0; }

Результат выполнения кода:

"Permission denied"

Смотрите также

  • класс error_code,
    который хранит код ошибки
  • класс runtime_error,
    который является базовым для system_error
  • функция make_error_code,
    которая создает объект error_code
  • метод message,
    который возвращает описание ошибки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить