Улавливает (...) работу на броске;без объекта? - PullRequest
4 голосов
/ 23 апреля 2011

Что, как говорит стандарт C ++, должно произойти для следующего кода, когда нет ожидающих исключений, обрабатываемых выше по стеку?

try {
  throw;
} catch (...) {
  cerr << "Caught exception." << endl;
}

Будет ли перехвачен бросок без объекта или нет?

1 Ответ

12 голосов
/ 23 апреля 2011

Из Стандарта C ++ 2003 г.terminate().

Итак, в вашем примере, поскольку в настоящее время не обрабатывается ни одно исключение, ничего не генерируется и вместо этого вызывается terminate().Поскольку terminate() не возвращается, ваш блок catch никогда не будет введен.

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