为什么`try`中的FormatException不会被`catch`捕获?

时间:2015-07-28 05:25:12

标签: c# parsing try-catch tryparse

我有以下代码块,我想知道为什么抛出运行时错误而不是我能够在catch内处理异常(我在int i = 1;放置一个断点但是从未达到过):

var stringArray = textRow.Split(Delimiter);

try
{
    var a = DateTime.Parse(stringArray[0]);
    var b = double.Parse(stringArray[2]);
    var c = double.Parse(stringArray[3]);
}
catch (Exception e)
{
    int i = 1;

}

抛出以下FormatException错误:

System.FormatException occurred
  _HResult=-2146233033
  _message=The string was not recognized as a valid DateTime. There is an unknown word starting at index 0.
  HResult=-2146233033
  IsTransient=false
  Message=The string was not recognized as a valid DateTime. There is an unknown word starting at index 0.
  Source=mscorlib
  StackTrace:
       at System.DateTime.Parse(String s)
  InnerException: 

我知道我可以使用TryParse,但我喜欢测试try / catch是否会提高性能,因为我会迭代这个代码块数百万次。

由于

1 个答案:

答案 0 :(得分:2)

在发生异常后尝试继续调试。该消息表示发生了第一次机会异常但您可以继续该程序。那你应该到达断点。如果没有try .. catch块,你会得到一个UNHANDLED异常。