【问题标题】:Exceptions not being caught未捕获的异常
【发布时间】: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


【解决方案1】:

根据原始来源,可能与此问题有关:Why can't I catch a generic exception in C#?

【讨论】:

    【解决方案2】:

    检查您是否已完成完全重建并且正在使用正确的 pdb 文件。还要检查你是否有一些条件编译的代码改变了东西(即#if DEBUG 语句之间的代码)。

    【讨论】:

      猜你喜欢
      • 2010-09-28
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多