0

私は自分のエラーを言葉で書いているだけです。char* vchar vまたはとしてキャッチする必要がありconst char* vますか?

try{
    int choice = 1
        if(choice != 2)
            throw choice;
}
catch(char* v){
    if (v == choice)
cout << "Error: choice != 2."
}
4

2 に答える 2

9

int をスローしているので、int をキャッチする必要があります

于 2013-06-07T14:35:05.280 に答える
4

代わりにこれを試してください:

try
{
    int choice = 1;
    if(choice != 2)
    {
        throw std::runtime_error("choice != 2");
    }
}
catch(std::exception& e)
{
    std::cout << "Error: " << e.what() << "\n";
}

std::exceptions はスローされる優先オブジェクトであり、エラーの場所は、何が起こっているかを説明するのに最適です。

于 2013-06-07T14:46:20.913 に答える