Namespaces
Variants

Diagnostics library

From cppreference.net

Содержание

Обработка исключений

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

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

Категории исключений

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

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

Номера ошибок

Определено в заголовочном файле <cerrno>
макрос, который раскрывается в POSIX-совместимую thread-local переменную номера ошибки
(макрос-переменная)
макросы для стандартных POSIX-совместимых условий ошибок
(макрос-константа)

Системная ошибка (since C++11)

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

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

Утверждения

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

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

Трассировка стека (начиная с C++23)

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

Поддержка отладки (since C++26)

Определено в заголовке <debugging>
(C++26)
приостанавливает выполнение программы при вызове
(функция)
вызывает std::breakpoint если std::is_debugger_present возвращает true
(функция)
проверяет, выполняется ли программа под управлением отладчика
(функция)

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

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