【发布时间】:2010-03-08 07:42:13
【问题描述】:
我们有以下代码:
try
{
// some code throwing MyException
}
catch (MyException ex)
{
// [1]
// no (re)throw here
}
catch (Exception ex)
{
if (ex is MyException)
{
// [2]
}
}
如果我们在没有附加调试器的情况下运行代码,一切都会运行良好。但是,如果我们debug 代码,我们不会到达[1] 而是[2]。据我了解语言规范,这应该是不可能的。
更奇怪的是,这段代码即使在调试时也能正常运行。这种奇怪的行为是几天前才开始的。
【问题讨论】:
-
你确定[2]真的被执行了吗?即使执行了正确的代码,VS 调试器有时也会突出显示错误的行。
-
MyException是其他程序集的一部分吗?删除对它的引用并再次添加它,构建项目。看看有没有帮助。 -
清理解决方案并重新构建它。
-
PDB 正常且与源同步。
-
根据原始来源,可能与此问题有关:stackoverflow.com/questions/1577760/…
标签: c# .net debugging exception