std::iostream_category
Материал из cppreference.com
<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) |
коды ошибок потока ввода/вывода (перечисление) |