Помогите справиться с заданием [закрыт]

220
25 сентября 2018, 11:20

Создать программу, которая демонстрирует, что функция со своим собственным 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;
}
}
Answer 1

Кроме пары мелочей главное - вы не написали блок 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;
    }
}
READ ALSO
Компилятор g++ флаги, оптимизация

Компилятор g++ флаги, оптимизация

Изучаю работу с g++ интересует линковка, генерация кода, оптимизация, g++ содержит множество флагов оптимизаций помимо -O1

246
Копируется пустой файл

Копируется пустой файл

У меня копируется пустой файлХотя до копирования я его создаю и наполняю содержимым

243
Статическая библиотека и флаги для CRT

Статическая библиотека и флаги для CRT

Очень неожиданный для меня вопросВ Visual Studio есть проект статической библиотеки (*

214