【发布时间】:2019-01-18 08:47:00
【问题描述】:
我的问题是,在捕获第一个异常后,变量number 已经有一个非零值,所以当第二个异常被抛出时。它只是跳出了我的 do-while 循环。我希望能够根据用户输入捕获两个或更多异常,而不会跳出循环。
有什么想法吗?我是编码新手,所以希望你能保持简单:)
int number = 0;
int svar = 2; // set by the user; for example 2
do
{
try
{
for (int i = 0; i < svar; i++)
{
Console.Write("\nWrite the number you would like to add to your list: ");
nummer = int.Parse(Console.ReadLine());
}
}
catch
{
Console.WriteLine("\n-- ERROR --");
Console.WriteLine("You typed a letter instead of a number, try again!");
}
myList.Add(number);
} while (number == 0);
【问题讨论】:
-
第二个异常发生在哪里?
-
nummernumber。真正尝试提供一个真实的、可编译的代码示例 -
尝试使用
int.TryParse(string, out int value)和 if 语句来查看它是否成功解析而无需捕获错误。 Here's 一个很好的教程/展示差异 -
我建议重写你的逻辑并使用 TryParse 而不是手动处理异常
-
现在有意义吗?
标签: c# for-loop try-catch do-while