例外没有被抓住

时间:2010-03-08 07:42:14

标签: c# .net debugging exception

我们有以下代码:

try 
{
    // some code throwing MyException
}
catch (MyException ex)
{
    // [1]
    // no (re)throw here
}
catch (Exception ex)
{
    if (ex is MyException)
    {
        // [2]
    }
}

如果我们运行代码没有附加调试器,一切运行正常。但是,如果我们调试代码,我们不会指向[1]而是[2]。据我了解语言规范,这是不可能的。

即使更奇怪,这段代码甚至在调试时运行良好。奇怪的行为仅在几天前开始。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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