Diagnostics library
Содержание |
Обработка исключений
Заголовок <exception> предоставляет несколько классов и функций, связанных с обработкой исключений в программах на C++.
|
Определено в заголовочном файле
<exception>
|
|
|
базовый класс для исключений, выбрасываемых компонентами стандартной библиотеки
(класс) |
|
Захват и хранение объектов исключений |
|
|
(
removed in C++20*
)
(C++17)
|
проверяет, выполняется ли в данный момент обработка исключений
(function) |
|
(C++11)
|
тип умного указателя для обработки объектов исключений
(typedef) |
|
(C++11)
|
создает
std::exception_ptr
из объекта исключения
(шаблон функции) |
|
(C++11)
|
захватывает текущее исключение в
std::exception_ptr
(функция) |
|
(C++11)
|
выбрасывает исключение из
std::exception_ptr
(функция) |
|
(C++11)
|
тип-примесь для захвата и сохранения текущих исключений
(класс) |
|
(C++11)
|
выбрасывает свой аргумент с
std::nested_exception
включенным
(шаблон функции) |
|
(C++11)
|
выбрасывает исключение из
std::nested_exception
(шаблон функции) |
Обработка сбоев в обработке исключений |
|
|
Определено в заголовочном файле
<exception>
|
|
|
функция, вызываемая при неудачной обработке исключений
(функция) |
|
|
тип функции, вызываемой
std::terminate
(typedef) |
|
|
(C++11)
|
получает текущий обработчик завершения
(функция) |
|
изменяет функцию, вызываемую
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>
|
|
|
класс исключения для указания нарушений логических предусловий или инвариантов класса
(класс) |
|
|
класс исключения для сообщения о недопустимых аргументах
(класс) |
|
|
класс исключения для сообщения об ошибках области определения
(класс) |
|
|
класс исключения для сообщения о попытках превысить максимально допустимый размер
(класс) |
|
|
класс исключения для сообщения об аргументах вне ожидаемого диапазона
(класс) |
|
|
класс исключения для указания условий, обнаруживаемых только во время выполнения
(класс) |
|
|
класс исключения для сообщения об ошибках диапазона во внутренних вычислениях
(класс) |
|
|
класс исключения для сообщения об арифметических переполнениях
(класс) |
|
|
класс исключения для сообщения об арифметических потерях значимости
(класс) |
|
|
(TM TS)
|
класс исключения для отмены атомарных транзакций
(шаблон класса) |
Номера ошибок
|
Определено в заголовочном файле
<cerrno>
|
|
|
макрос, который раскрывается в POSIX-совместимую thread-local переменную номера ошибки
(макрос-переменная) |
|
|
макросы для стандартных POSIX-совместимых условий ошибок
(макрос-константа) |
|
Системная ошибка (since C++11)
Заголовок
<system_error>
определяет типы и функции, используемые для сообщения об ошибках, возникающих в операционной системе, потоках ввода-вывода,
std::future
, или других низкоуровневых API.
|
Определено в заголовочном файле
<system_error>
|
|
|
(C++11)
|
базовый класс для категорий ошибок
(класс) |
|
(C++11)
|
идентифицирует общую категорию ошибок
(функция) |
|
(C++11)
|
идентифицирует категорию ошибок операционной системы
(функция) |
|
(C++11)
|
содержит переносимый код ошибки
(класс) |
|
(C++11)
|
перечисление
std::error_condition
со списком всех стандартных
<cerrno>
макроконстант
(класс) |
|
(C++11)
|
содержит платформозависимый код ошибки
(класс) |
|
(C++11)
|
класс исключения для сообщения о состояниях, имеющих error_code
(класс) |
Утверждения
Утверждения помогают реализовать проверку предусловий в программах.
|
Определено в заголовочном файле
<cassert>
|
|
|
аварийно завершает программу, если заданное пользователем условие не является
true
. Может быть отключено для релизных сборок.
(функциональный макрос) |
|
Трассировка стека (начиная с C++23)
|
Определено в заголовке
<stacktrace>
|
|
|
(C++23)
|
представление вычисления в стеке вызовов
(класс) |
|
(C++23)
|
приблизительное представление последовательности вызовов, состоящей из записей стека вызовов
(шаблон класса) |
Поддержка отладки (since C++26)
|
Определено в заголовке
<debugging>
|
|
|
(C++26)
|
приостанавливает выполнение программы при вызове
(функция) |
|
(C++26)
|
вызывает
std::breakpoint
если
std::is_debugger_present
возвращает
true
(функция) |
|
(C++26)
|
проверяет, выполняется ли программа под управлением отладчика
(функция) |
Смотрите также
static_assert
объявление
(C++11)
|
выполняет проверку утверждений во время компиляции |
|
Документация C
для
Обработка ошибок
|
|