Вам необходимо обработать случай, когда Console.ReadLine()
возвращает что-то, что не является целочисленным значением.В вашем случае вы, вероятно, получаете эту ошибку, потому что что-то напечатано неправильно.
Вы можете решить эту проблему, переключившись на TryParse :
public void bet()
{
int betAmount;
Console.WriteLine("How much would you like to bet?");
while(!int.TryParse(Console.ReadLine(), out betAmount))
{
Console.WriteLine("Please enter a valid number.");
Console.WriteLine();
Console.WriteLine("How much would you like to bet?");
}
Console.WriteLine(_chips - betAmount);
}
int.TryParse
вернет false, если пользователь введет что-то отличное от целого числа.Приведенный выше код заставит программу постоянно повторять запрос пользователя, пока он не введет действительный номер, вместо того, чтобы поднимать FormatException
.
Это распространенная проблема - каждый раз, когда вы анализируете пользовательский ввод, вынеобходимо убедиться, что ввод был введен в правильном формате.Это может быть сделано с помощью обработки исключений или с помощью пользовательской логики (как указано выше) для обработки неправильного ввода.Никогда не доверяйте пользователю правильно вводить значения.