【问题标题】:The "exception was caught" breakpoint dialog window has an extra '>' char when you catch a generic exception?当您捕获通用异常时,“异常被捕获”断点对话框窗口有一个额外的 '>' 字符?
【发布时间】:2013-04-04 02:33:31
【问题描述】:

我注意到来自 WCF 服务的错​​误异常有些奇怪,并且能够重新创建它:

创建一个新的控制台应用并添加这些类型:

class TestException<T> : Exception where T : IError, new() { }
interface IError { }
class NewError : IError { }
class NormalException : Exception { }

Main函数中,添加以下代码:

static void Main(string[] args)
{
    try
    {
        throw new NormalException();
    }
    catch (NormalException ne)
    { //break point here 
    }
    try
    {
        throw new TestException<NewError>();
    }
    catch (TestException<NewError> ge)
    {//break point here
    }
}

当第一次接球时,窗口将显示如下:

当遇到通用异常时,您会看到这个窗口:

注意消息中额外的 > 字符。

这是正常的和预期的,还是我报告的?

任何人都可以尝试在 VS 2012 上复制这个吗?

【问题讨论】:

  • 这是一个错误,我已经确认它仍然存在于 Visual Studio 2012 中。
  • 这看起来像是 VS 中的一个错误。我强烈建议您在 MSConnect 上提交此文件:connect.microsoft.com
  • 好的,感谢您的确认。我已经在这里提交了一份报告。 connect.microsoft.com/VisualStudio/feedback/details/782789/…
  • @asawyer - 如果您愿意,我可以关闭,但您也可以在正确确认这是一个错误后添加您自己的答案。
  • 如果类型参数可以不带句点写入(从命名空间访问),问题似乎就消失了。例如,如果您将 NewError 类声明移到 namespace scratcpad { ... } 块之外,以便该类驻留在全局命名空间中,错误就会消失。 TestException&lt;&gt; 上的接口和泛型约束不需要重现。

标签: c# visual-studio-2010


【解决方案1】:

我想这可能会或可能不会在即将发布的版本中得到解决:

Microsoft 于 2013 年 4 月 3 日上午 11:29 发布 感谢您报告此内容 问题。我们将考虑在未来的版本中解决此问题。谢谢, Visual Studio 调试器团队

【讨论】:

    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多