当用户输入字符串时,程序会中断并且我的异常处理不会解决此问题。我做错了什么?
int number;
Console.WriteLine("Please enter your age");
number = Convert.ToInt32(Console.ReadLine());
try
{
if (number >= 18)
Console.WriteLine("You are old enough to enter");
else if (number < 18)
Console.WriteLine("You are not old enough to enter");
}
catch
{
Console.WriteLine("Only enter a number");
}
Console.ReadLine();
答案 0 :(得分:2)
你必须把
number = Convert.ToInt32(Console.ReadLine());
在Try / Catch里面。您正在读取字符串并尝试将其转换为int。如果不可能,Convert.ToInt32将抛出异常。
try
{
number = Convert.ToInt32(Console.ReadLine());
if (number >= 18)
Console.WriteLine("You are old enough to enter");
else if (number < 18)
Console.WriteLine("You are not old enough to enter");
}
catch
{
Console.WriteLine("Only enter a number");
}
Console.ReadLine();
另外,建议您使用int.TryParse()。在这种情况下,您可以检查结果而不会发现异常。
答案 1 :(得分:0)
您必须编辑代码才能将try .. catch
放在正确的位置,然后放置以下行:
number = Convert.ToInt32(Console.ReadLine());
出try .. catch
块,这就是为什么不处理异常的原因,请检查以下代码:
{
try
{
int number;
Console.WriteLine("Please enter your age");
number = Convert.ToInt32(Console.ReadLine());
if (number >= 18)
{
Console.WriteLine("You are old enough to enter");
}
else if(number < 18)
{
Console.WriteLine("You are not old enough to enter");
}
catch
{
Console.WriteLine("Only enter a number");
}
Console.ReadLine();
}
有关 try..catch HERE的更多信息。
答案 2 :(得分:0)
number = Convert.ToInt32(Console.ReadLine());
在try
块