异常构造函数中的异常

时间:2017-02-25 15:55:29

标签: c++ exception-handling try-catch

假设这段C ++代码:

class myexception1
{
public:
    myexception1()
    {};
};

class myexception2
{
public:
    myexception2()
    {
        throw myexception1();
    };
};

void test()
{
    try
    {
        throw myexception2();
    }
    catch (...)
    {
    }
};

如果我运行test函数,哪种异常会收到catch块?这会因为从异常构造函数中抛出异常而产生一些内存泄漏吗?

1 个答案:

答案 0 :(得分:0)

捕获的异常将是myexception1。是否存在内存泄漏将取决于异常构造函数究竟是什么 - 在这种情况下不会有一个。