C++ - 构造函数中的异常

0 c++ exception c++14

我有个问题。我必须在构造函数 One() 中抛出一个异常,但不知道我该如何捕捉它。有人可以建议吗?我试过这个方法:从构造函数抛出异常如果构造函数抛出异常会发生什么?

我的代码:

class One
{
    int a, b;

public:

    One()
    {
        a = 7;
        b = 0;
        if (b == 0)
        {
            throw "except";
        }       
    }

};
int main()
{
    One j;
    try 
    {
        cout << "good"; 
    }
    catch(const char *str)
    {
        cout << str;
    }
}
Run Code Online (Sandbox Code Playgroud)

Erl*_*nig 6

将变量定义放在try块内:

try 
{
    One j;
    std::cout << "good"; 
}
catch(const char *str)
{
    std::cout << str;
}
Run Code Online (Sandbox Code Playgroud)