Запустите общий код в случае возникновения каких-либо исключений в C ++ - PullRequest
0 голосов
/ 29 апреля 2020

Я выглядел как finally для C ++, но я столкнулся с RAII . У меня небольшая путаница, хотя. Если у меня есть какой-то общий код, который я хочу запустить в случае какого-либо исключения,

Пример: std::cout << "exception occured" << std::endl;

Есть ли способ сделать это вместо копирования того же кода?

#include <iostream>

int main()
{
    bool firstException = false;
    try
    {
        if(firstException)
            throw std::invalid_argument("the truth is out there!!");
        else
            throw std::domain_error("Bazzinga");
    }
    catch (std::invalid_argument const& e)
    {
        std::cout << e.what() << std::endl;
        std::cout << "exception occured" << std::endl;
    }
    catch (std::domain_error const& e)
    {
        std::cout << e.what() << std::endl;
        std::cout << "exception occured" << std::endl;
    }
}

1 Ответ

0 голосов
/ 29 апреля 2020

Я получил то, о чем molbdnilo говорил в комментарии. Код ниже имеет ответ. :): D

#include <iostream>

int main()
{
    bool firstException = true;
    try
    {
        if(firstException)
            throw std::invalid_argument("the truth is out there!!");
        else
            throw std::invalid_argument("Bazzinga");
    }
    catch (std::exception const& e)
    {
        std::cout << e.what() << std::endl;
        std::cout << "exception occured" << std::endl;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...