current_exception
Requirements:
ИсключениеФункция не должна вызываться за пределами блоков улова.
Кроме того, для безопасного копирования исключения из одного потока в другой, если объект исключения скопированcurrent_исключениемилиcopy_исключением, два экземпляра не должны иметь общего состояния. Исключения, имеющие семантику стоимостного типа (а также повышение::исключениесам тип), удовлетворяют этому требованию.
Returns:
- Исключение, что относится к рассматриваемому в настоящее время исключению или копии рассматриваемого в настоящее время исключения.
- Если функция требует выделения памяти и попытка не удалась, она возвращает, что относится к экземпляру std::bad_alloc.
Throws:
Ничего.
Notes:
- Не уточняется, относятся ли значения возврата двух последовательных вызовов кcurrent_ Exceptionк одному и тому же объекту исключения.
- Для правильной реализацииcurrent_ Exceptionможет потребоваться поддержка компилятора, если толькоenable_current_ Exceptionне было использовано в момент передачи объекта исключения, который в настоящее время обрабатывается. Всякий раз, когдаcurrent_ Exceptionне может должным образом скопировать текущий объект исключения, он возвращаетexception_ptrобъекту типа, который максимально близок к исходному типу исключения, используяunknown_ Exceptionв качестве окончательного запасного варианта. Все такие типы вытекают из бустера::исключениеи: