Любые идеи о хорошем способе реорганизации этого, чтобы мой код действовал так же, но без всего выбрасывания и перехвата моего собственного исключения?
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);
}
EDIT: метод try/parse — это именно то, что я ищу.
В ответ на редактирование заголовка Джона -> я должен был опубликовать больше информации для начала, и это было бы «лучше всего избавиться от всех попыток/поймать». Поэтому, помня об этом, я изменил название.
int.TryParse
, поэтому мне придется не согласиться, пока ОП не прояснит ситуацию. - person John Saunders   schedule 12.01.2010