Что, как говорит стандарт C ++, должно произойти для следующего кода, когда нет ожидающих исключений, обрабатываемых выше по стеку?
try { throw; } catch (...) { cerr << "Caught exception." << endl; }
Будет ли перехвачен бросок без объекта или нет?
Из Стандарта C ++ 2003 г.terminate().
terminate()
Итак, в вашем примере, поскольку в настоящее время не обрабатывается ни одно исключение, ничего не генерируется и вместо этого вызывается terminate().Поскольку terminate() не возвращается, ваш блок catch никогда не будет введен.
catch