Создать программу, которая демонстрирует, что функция со своим собственным try-блоком не должна перехватывать все возможные исключения, выброшенные в блоке try. Некоторые исключения могут быть выпущены во внешние области действия и обрабатываться в них.
Я так понял здесь нужно чтобы при выходе из функции был еще один catch для обработки другой ситуации. Подскажите как это реализовать. Тут синтаксически неправильно. Ругается.
void Foo(int& a)
{
try
{
if (a > 0)
throw 1;
else
throw "Digit is negative!\n\n";
}
catch (int & res)
{
cout << "Digit is positive!\n\n";
}
}
void main()
{
int a;
cout << "Enter digit:";
cin >> a;
Foo(a);
catch (char * res)
{
cout << *res << endl;
}
}
Кроме пары мелочей главное - вы не написали блок try, а только catch в функции main...
void Foo(int a)
{
try
{
if (a > 0)
throw 1;
else
throw "Digit is negative!\n\n";
}
catch (int)
{
cout << "Digit is positive!\n\n";
}
}
int main()
{
int a;
cout << "Enter digit:";
cin >> a;
try
{
Foo(a);
}
catch (const char * res)
{
cout << res << endl;
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей