为什么 try 中的 FormatException 没有被 catch 捕获?
Why does a FormatException within `try` not get caught in `catch`?
我有以下代码块,我想知道为什么会抛出 运行 时间错误,而不是我能够在 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..catch 块,您将得到一个 UNHANDLED 异常。
我有以下代码块,我想知道为什么会抛出 运行 时间错误,而不是我能够在 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..catch 块,您将得到一个 UNHANDLED 异常。