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


current_exception

Получает интеллектуальный указатель на текущее исключение.

exception_ptr current_exception();

Возвращаемое значение

Объект exception_ptr, указывающий на текущее исключение.

Заметки

Вызовите функцию current_exception в блоке catch. Если исключение находится в полете и блок перехвата может перехватить это исключение, функция current_exception возвращает объект exception_ptr, который ссылается на это исключение. В противном случае функция возвращает объект exception_ptr со значением null.

Функция current_exception перехватывает исключение, находящееся в полете, независимо от того, определяет ли оператор catch оператор объявления исключения.

Деструктор для текущего исключения вызывается в конце блока catch, если не требуется повторно создавать исключение. Однако даже при вызове функции current_exception в деструкторе эта функция возвращает объект exception_ptr, который ссылается на текущее исключение.

Последующие вызовы функции current_exception возвращают объекты exception_ptr, которые ссылаются на различные копии текущего исключения. Соответственно, при сравнении объекты не признаются равными, поскольку они ссылаются на различные копии, даже если эти копии имеют одинаковые бинарные значения.

См. также

Ссылки

<exception>

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