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

Обработка ошибок

Материал из cppreference.com
< cpp
 
 
Библиотека диагностики
Обработка исключений
Сбои обработки исключений
(до C++17*)
(до C++17*)
(C++11)(до C++17*)    
(до C++17*)
Коды ошибок
Коды ошибок
Категории исключений
(ТС TM)
Поддержка системных ошибок
(C++11)
(C++11)
Утверждения
Трассировка стека
 

Содержание

[править] Обработка исключений

Заголовок <exception> предоставляет несколько классов и функций, связанных с обработкой исключений в программах на C++.

Определены в заголовочном файле <exception>
базовый класс для исключений, создаваемых компонентами стандартной библиотеки
(класс) [править]
Захват и хранение объектов исключений
(удалено в C++20)(C++17)
проверяет, выполняется ли в настоящее время обработка исключений
(функция) [править]
тип общего указателя для обработки объектов исключений
(определение типа) [править]
создаёт std::exception_ptr из объекта исключения
(шаблон функции) [править]
фиксирует текущее исключение в std::exception_ptr
(функция) [править]
генерирует исключение из std::exception_ptr
(функция) [править]
комбинированный тип ��ля захвата и хранения текущих исключений
(класс) [править]
бросает свой аргумент с комбинированным std::nested_exception
(шаблон функции) [править]
генерирует исключение из std::nested_exception
(шаблон функции) [править]
Обработка сбоев в обработке исключений
Определены в заголовочном файле <exception>
функция, вызываемая при сбое обработки исключения
(функция) [править]
тип функции, вызываемой из std::terminate
(определение типа) [править]
получает текущий terminate_handler
(функция) [править]
изменяет функцию, вызываемую из std::terminate
(функция) [править]
исключение, которое возникает, когда std::current_exception не может скопировать объект исключения
(класс) [править]
Обработка нарушений спецификации исключений (удалено в C++17)
(удалено в C++17)
функция, вызываемая при нарушении спецификации динамического исключения
(функция) [править]
(удалено в C++17)
тип функции, вызываемой из std::unexpected
(определение типа) [править]
(C++11)(удалено в C++17)
получает текущий unexpected_handler
(функция) [править]
(удалено в C++17)
изменяет функцию, вызываемую из std::unexpected
(функция) [править]

[править] Категории исключений

В заголовке <stdexcept> предопределено несколько вспомогательных классов для сообщения об определённых ошибочных условиях. Эти классы можно разделить на две категории: логические ошибки и ошибки времени выполнения. Логические ошибки являются следствием неправильной логики программы и их можно предотвратить. Ошибки выполнения возникают из-за событий, выходящих за рамки программы, и их нелегко предсказать.

Определены в заголовочном файле <stdexcept>
класс исключения для обозначения нарушений логических предварительных условий или инвариантов класса
(класс) [править]
класс исключения для сообщения о недопустимых аргументах
(класс) [править]
класс исключения для сообщения об ошибках предметной области
(класс) [править]
класс исключения для сообщения о попытках превышения максимально допустимого размера
(класс) [править]
класс исключения для сообщения, что аргументы за пределами ожидаемого диапазона
(класс) [править]
класс исключения для обозначения условий, обнаруживаемых только во время выполнения
(класс) [править]
класс исключения для сообщения об ошибках диапазона во внутренних вычислениях
(класс) [править]
класс исключения для сообщения об арифметических переполнениях
(класс) [править]
класс исключения для сообщения об арифметических потерях значимости
(класс) [править]
(ТС TM)
класс исключения для отмены атомарных транзакций
(шаблон класса)

[править] Номера ошибок

Определены в заголовочном файле <cerrno>
макрос, который расширяется до переменной номера локальной ошибки потока, совместимой с POSIX
(macro variable) [править]
макросы для стандартных состояний ошибок, совместимых с POSIX
(макроконстанта) [править]

[править] Системная ошибка

Заголовок <system_error> определяет типы и функции, используемые для сообщения об ошибках, происходящих из операционной системы, потокового ввода-вывода, std::future или других низкоуровневых API.

Определены в заголовочном файле <system_error>
базовый класс для категорий ошибок
(класс) [править]
определяет общую категорию ошибок
(функция) [править]
определяет категорию ошибок операционной системы
(функция) [править]
содержит переносимый код ошибки
(класс) [править]
(C++11)
перечисление std::error_condition, в котором перечислены все стандартные макроконстанты <cerrno>
(класс) [править]
содержит код ошибки, зависящий от платформы
(класс) [править]
класс исключения, используемый для сообщения условий, которые имеют error_code
(класс) [править]

[править] Утверждения

Утверждения помогают реализовать проверку предусловий в программах.

Определены в заголовочном файле <cassert>
прерывает выполнение программы, если указанное пользователем условие не равно true. Может быть отключено для релизовых сборок
(функция-макрос) [править]

[править] Трассировка стека

Определены в заголовочном файле <stacktrace>
представление вычисления в трассировке стека
(класс) [править]
приблизительное представление последовательности вызовов состоит из записей трассировки стека
(шаблон класса) [править]

[править] Смотрите также

объявление static_assert(C++11) выполняет проверку утверждения во время компиляции[править]
Документация C по Обработка ошибок