Пространства имён
Варианты
Действия

std::iostream_category

Материал из cppreference.com
< cpp | io
 
 
Библиотека ввода/вывода
Манипуляторы ввода/вывода
Функции print (C++23)
Ввод/вывод в стиле C
Буферы
(устарело в C++98)
Потоки
Абстракции
Файловый ввод/вывод
Ввод/вывод строк
Ввод/вывод массивов
(устарело в C++98)
(устарело в C++98)
(устарело в C++98)
Синхронизированный вывод
Типы
Интерфейс категорий ошибок
(C++11)
 
<tbody> </tbody>
Определено в заголовочном файле <ios>
const std::error_category& iostream_category() noexcept;
(начиная с C++11)

Получает ссылку на статический объект категории ошибок для ошибок iostream. Объекту необходимо переопределить виртуальную функцию error_category::name(), чтобы возвращать указатель на строку "iostream". Он используется для идентификации кодов ошибок, предусмотренных в исключениях типа std::ios_base::failure.

Параметры

(нет)

Возвращаемое значение

Ссылка на статический объект неопределённого типа времени выполнения, полученный из std::error_category.

Пример

#include <fstream>
#include <iostream>
 
int main()
{
    std::ifstream f("не существует");
    try
    {
        f.exceptions(f.failbit);
    }
    catch (const std::ios_base::failure& e)
    {
        std::cout << "Поймано ios_base::failure.\n"
                  << "Код ошибки: " << e.code().value() 
                  << " (" << e.code().message() << ")\n"
                  << "Категория ошибки: " << e.code().category().name() << '\n';

    }
}

Возможный вывод:

Поймано ios_base::failure.
Код ошибки: 1 (unspecified iostream_category error)
Категория ошибки: iostream

Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 2087 C++11 iostream_category не был объявлен как noexcept объявлен noexcept

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

Поток исключение
Оригинал:
stream exception
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public элемент класса std::ios_base) [править]
(C++11)
коды ошибок потока ввода/вывода
(перечисление) [править]