【发布时间】:2010-12-22 22:13:57
【问题描述】:
我遇到了一个相当奇怪的小问题。
在下面的代码中我无法理解e 怎么可能是null;
try
{
//Some Code here
}
catch (Exception e)
{
//Here e is null
}
据我所知,throw null 将被转换为throw new NullReferenceException()。
这个问题似乎与多线程有关,因为删除另一个线程似乎也可以解决它。或者至少我只在上面的代码在新线程中运行时看到了这一点。整个程序使用了很多线程,有点复杂。
无论如何我的问题是,e 怎么可能是空的? - 希望这个问题的答案可以帮助找到这个问题的根源。
编辑 我发现它是因为它在 catch 语句中导致了 NullReferenceException,并且使用调试器我看到了同样的情况。
编辑 2 第二天打开 VisualStudio 再次尝试,没有代码更改,现在相同的流行语是“调用”,但这次 e 不为空。看来这是一个 VS 故障。
【问题讨论】:
-
听起来好像您已经开始解决问题了。你需要把胎面弄直。
标签: c# .net multithreading exception exception-handling