Есть какие-нибудь идеи о хорошем способе рефакторинга, чтобы мой код действовал так же, но без единого исключения и отлова моего собственного исключения?
public Int32 ChooseNextColor(Int32 numColors)
{
int? nextColor = null;
while (nextColor == null)
{
Console.Write("Please enter your next color selection: ");
string input = Console.ReadLine();
try
{
nextColor = Convert.ToInt32(input);
if (nextColor > numColors || nextColor < 0)
throw new ArgumentOutOfRangeException();
}
catch
{
nextColor = null;
Console.WriteLine("Unrecognized input: " + input);
Console.WriteLine("Please enter a value between 0 and " + numColors + ".");
}
}
return (nextColor.Value);
}
РЕДАКТИРОВАТЬ : Метод try / parse - именно то, что я ищу.
В ответ на редактирование заголовка Джона -> я должен был опубликовать больше информации для начала, и это было бы "лучше всего избавиться от попытки поймать все вместе" Поэтому, помня об этом, я сменил название.