我有一个简单的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中,我得到了我想要的行为:
但是,Visual Studio Express 2013 for Windows Desktop的行为就好像某个不可调试的组件产生了Exception,我无法获得有关它的更多信息(例如,InnerException以及有关错误的实际信息) ):
这是VS 2013 Express的固有限制,还是我可以更改一些设置以在Express中获得正确的行为?这两个项目的目标框架是4.5。
答案 0 :(得分:2)
正如@Hans Passant和@Jeff Mercado对此问题的评论所回答,Visual Studio Express 2013没有&#34;例外助手&#34;,这是Premium 2013和Visual C#2010中的一项功能快递(以及其他人)。因此,所有异常(不仅仅涉及TPL +异步/等待功能的那些)都显示在一个无法提供信息的丑陋模态框中,该框不提供对异常属性的访问。
如果这是您的重要功能,您可以投票在此处修复:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/5403561-improve-usability-of-the-exception-dialog-in-expre