Das*_*app 1 c# debugging filtering
是否可以从C#中的调试输出中过滤出不同类型的异常?
我想过滤掉'System.FormatException',因为我知道它会发生,并且它会对我的输出进行垃圾监督.我正在扫描超过20,000行的文本文件,其中几乎四分之一是错误的,但我不想在输出中使用'System.FormatException'5000次...
代码如下所示,您可以看到,如果它不是数字,它将不会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;
Run Code Online (Sandbox Code Playgroud)
如果您想忽略异常,可以将以下try/catch放在上面:
try
{
// Insert your code here
}
catch(System.FormatException)
{
}
Run Code Online (Sandbox Code Playgroud)
看到你的代码,我建议你使用
double d = 0;
Boolean success = double.TryParse(splitline[8], out d);
if(success)
Console.WriteLine("Conversion successful!");
else
Console.WriteLine("Damnit.");
Run Code Online (Sandbox Code Playgroud)
代替.这将返回一个关于转换是否正常的布尔值,并且还将解析的double存储在您传递函数的变量中.