【发布时间】:2017-04-16 23:21:23
【问题描述】:
是否可以从我的 C# 调试输出中过滤掉不同类型的异常?
我想过滤掉“System.FormatException”,因为我知道它会发生,而且它对我的输出进行了垃圾监督。我正在扫描一个超过 20,000 行的文本文件,其中几乎四分之一是错误的,但我不想在输出中出现 5000 次“System.FormatException”...
代码如下,你可以看到,如果不是数字,它不会double.parse,所以它会捕获错误。
if (!(dataline.EndsWith(";0") || intCounter == 0))
{
try
{
natMB = double.Parse(splitline[8], NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo);
}
catch
{
natMB = 0;
}
double intMB;
try
{
intMB = double.Parse(splitline[9], NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo);
}
catch
{
intMB = 0;
【问题讨论】:
-
验证进入函数的输入不是更好吗,在我看来,捕捉错误来验证用户输入并不理想。一个简单的 RegEx 可以为您进行数字验证。
-
我同意。修复输入而不是捕获错误会更好。
-
我添加了我正在使用的代码