Допустимо ли повторное создание необработанного исключения сопрограммы C++ с помощью `throw;`?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Допустимо ли повторное создание необработанного исключения сопрограммы C++ с помощью `throw;`?

Сообщение Anonymous »

Действителен ли следующий код в объекте обещания сопрограммы C++?

Код: Выделить всё

void
promise_type::unhandled_exception() noexcept
{
try {
// re-throw current exception
throw;
} catch (const std::exception &e) {
std::println(stderr, "unhandled exception in coroutine: {}",
e.what());
std::terminate();
} catch (...) {
std::println(stderr, "non-std::exception thrown");
std::terminate();
}
}
Альтернативой throw; может быть std::rethrow_Exceptionion(std::current_Exceptionion());. Однако я считаю, что throw; гораздо более читабелен и, похоже, работает как с gcc, так и с clang.


Подробнее здесь: https://stackoverflow.com/questions/798 ... with-throw
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»