У меня есть следующий TRY/поймать:C++ попробовать/поймать не поймать исключение
try
{
Player newPlayer = Database::newPlayer(atoi(arguments.at(1).c_str()), arguments.at(2));
}
catch (int e)
{
cout << "Wrong parameters used.\n";
}
Моя цель состоит в том, чтобы иметь возможность добавить игрока, и если по каким-то причинам аргументы не совпадают, например, помещая нецелое число для arguments.at(1)
или недостаточно аргументов, но в Visual Studio, если я это сделаю, программа выйдет из строя, а Visual Studio говорит «необработанное исключение, std :: out_of_range в ячейке памяти». Я хочу, чтобы моя программа не сработала, когда это произойдет, но просто скажите «Неверные параметры, используемые», поскольку она в настоящее время находится в выводе.
Вы поймаете 'int'. Вы знаете это правильно? – Rapptz
Чтобы поймать все, используйте 'catch (...)', но не делайте этого. – doug65536
Вам нужно поймать std :: out_of_range вместо int – Pedrom