Рассмотрим следующий код C ++:
try {
throw foo(1);
} catch (foo &err) {
throw bar(2);
} catch (bar &err) {
// Will throw of bar(2) be caught here?
}
Я ожидал, что ответ будет отрицательным, поскольку он не находится внутри блока try
, а я вижу в другом вопросе ответ отрицательный для Java, но хочу подтвердить, что С ++ тоже нет. Да, я могу запустить тестовую программу, но я хотел бы знать определение языка поведения в удаленном случае, если в моем компиляторе есть ошибка.