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

本文关键字:catch 中的 try FormatException 为什么 | 更新日期: 2023-09-27 18:05:15

我有以下代码块,我想知道为什么会抛出运行时错误,而不是我能够处理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是否会获得更好的性能,因为我在这个代码块上迭代了数百万次。

谢谢

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

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