int.Parse()
завершится с этим исключением, если указанное вами значение не может быть преобразовано в целое число, и, как написано, у вас нет проверок на строку, считываемую из консоли, чтобы убедиться, что это так до передачи это к методу.
Вместо этого вы можете использовать int.TryParse()
, что дает вам немного больше контроля над обработкой ошибки, возвращая логическое значение, указывающее на успех. Вместо этого вы можете отправить сообщение об ошибке и попросить пользователя повторить отправку.
string input = Console.ReadLine();
int result;
if(int.TryParse(input, out result)) // TryParse returns a boolean showing whether the parse worked
{
// then perform your behavior safely
}