string l = Console.ReadLine();
try
{
int.Parse(l);
}
catch (FormatException)
{
Console.WriteLine("Invalid input. Please enter 1, 2, or 3.");
}
正如你所看到的,我已经要求输入,但是如果用户输入非整数答案,例如字母“f”,catch 语句会捕获它,但随后再次抛出异常,因为变量“l”仍然等于“f”。帮助?
您可以使用int.TryParse http://msdn.microsoft.com/en-us/library/system.int32.tryparse.aspx而不是捕获异常。它返回解析是否成功,因此您可以循环检查它,直到输入有效,例如
int i;
bool valid = false;
do {
Console.WriteLine("Enter an int: ");
string input = Console.ReadLine();
valid = int.TryParse(input, out i);
} while(! valid);
//use i
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)