Поделиться через


exception_ptr

Тип, который описывает указатель на исключение.

typedef unspecified exception_ptr;

Заметки

Неуказанный внутренний класс, используемый для реализации типа exception_ptr.

Используйте объект exception_ptr для ссылки на текущее исключение или экземпляр указанного пользователем исключения. В реализации Майкрософт исключение представлено структурой EXCEPTION_RECORD. Каждый объект exception_ptr содержит поле ссылки на исключение, указывающее на копию структуры EXCEPTION_RECORD, представляющую исключение.

При объявлении переменной exception_ptr эта переменная не связана ни с одним исключением. То есть в поле ссылки на исключение находится значение NULL. Такой объект exception_ptr называется exception_ptr null.

Используйте функцию current_exception или make_exception_ptr для назначения исключения объекту exception_ptr. При назначении исключения переменной exception_ptr поле ссылки на исключение переменной указывает на копию исключения. При нехватке памяти для копирования исключения поле ссылки на исключение указывает на копию исключения std::bad_alloc. Если функция current_exception или make_exception_ptr не может скопировать исключение по какой-либо другой причине, эта функция вызывает функцию terminate (CRT), чтобы выйти из текущего процесса.

Несмотря на свое имя, объект exception_ptr не является указателем. Он не повинуется семантике указателя и не может использоваться с операторами доступа к членам указателей (->) или косвенного обращения (*). Объект exception_ptr не имеет открытых данных-членов и функций-членов.

Сравнения:

Можно использовать операторы равенства (==) и неравенства (!=) для сравнения двух объектов exception_ptr. Эти операторы не сравнивают бинарное значение (битовый шаблон) структур EXCEPTION_RECORD, которые представляют исключения. Вместо этого операторы сравнивают адреса в поле ссылки на исключение объектов exception_ptr. Поэтому exception_ptr со значением null и значение NULL при сравнении считаются равными.

См. также

Ссылки

<exception>

Перенос исключений между потоками