为什么VS 2013 Express不允许检查AggregateException?

时间:2015-12-11 23:13:37

标签: c# visual-studio-2013 async-await task-parallel-library

我有一个简单的TPL + async / await程序,我想调试:

class Program
{
    static void Main(string[] args)
    {
        int x = ThrowException().Result;
    }

    async static Task<int> ThrowException()
    {
        throw new Exception("I want this Exception to be shown when the debugger breaks");
    }
}

我想要的行为是调试器在观察到Exception时中断,并且我希望通过检查AggregateException来访问消息(&#34;我想要这个例外...&#34;) 39; s InnerException。在Visual Studio 2013 Premium中,我得到了我想要的行为:

enter image description here

但是,Visual Studio Express 2013 for Windows Desktop的行为就好像某个不可调试的组件产生了Exception,我无法获得有关它的更多信息(例如,InnerException以及有关错误的实际信息) ):

enter image description here

这是VS 2013 Express的固有限制,还是我可以更改一些设置以在Express中获得正确的行为?这两个项目的目标框架是4.5。

1 个答案:

答案 0 :(得分:2)

正如@Hans Passant和@Jeff Mercado对此问题的评论所回答,Visual Studio Express 2013没有&#34;例外助手&#34;,这是Premium 2013和Visual C#2010中的一项功能快递(以及其他人)。因此,所有异常(不仅仅涉及TPL +异步/等待功能的那些)都显示在一个无法提供信息的丑陋模态框中,该框不提供对异常属性的访问。

更多信息:https://connect.microsoft.com/VisualStudio/feedback/details/806898/the-exception-assistant-is-missing-again-in-2013

如果这是您的重要功能,您可以投票在此处修复:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/5403561-improve-usability-of-the-exception-dialog-in-expre