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