Что происходит, когда вы выбрасываете из обработчика выхода из области после того, как возврат произошел? - PullRequest
0 голосов
/ 08 мая 2018

По сути, у меня есть функция с защитой области видимости для очистки при выходе.

И тогда возникает проблема с очисткой охраны области, и она выдает.

string f(void)
{
   scope_guard x(){ throw std::runtime_error("Failed to finalize stmt.");}

   return "ok";
}

Итак, когда я наблюдаю в своем отладчике, возвращение начинает происходить, охранник видимости выходит из области видимости и внутри него выдает.

msvc2017 дал мне исключение необработанного исключения или что-то в этом роде.

Я бы подумал, что это должно сработать, если нет ничего неприятного в том, чтобы бросать в середину стека раскручивание или что-то в этом роде?

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...