问题描述
如何跳过“System.FormatException”?
示例:
public void HowMuchBookCar()
{
Console.Write("\nOk,how much Euros you want to book in 'CarandBeauty': ");
double howMuch = Convert.Todouble(Console.ReadLine());
CarandBeauty = Input(CarandBeauty,howMuch);
Save(@"C:\Users\tobia\Desktop\Neuer Ordner\JanuaryCategorie.txt");
Console.Clear();
WannaBook();
}
此方法是将特定金额预订到“汽车与美容”类别中。 如果用户在此处输入例如“G”(或不适用于此变量的内容),则会抛出“System.FormatException”并且程序停止工作...
这是有道理的……但是我怎样才能防止抛出异常而不是特定的代码呢? (例如:“请输入有效内容!”)
解决方法
要避免 FormatException
,请改用 double.TryParse。
您可以这样做:
double result;
while (true) // until user has typed something correct
{
Console.WriteLine("Input a number:");
var line = Console.ReadLine();
// NOTE: optionally here,you may want to exit program if say,user has typed 'exit'
if (double.TryParse(line,out result))
break;
Console.WriteLine("Input was not recognized");
}
Console.WriteLine($"You typed: {result:G}");