TPL打破未处理的异常

Rom*_*key 4 c# debugging exception-handling visual-studio async-await

async awaitTask.Factory.StartNew我的应用程序一样使用,但我注意到的一件事是,当未处理的异常发生时,visual studio不再破坏

这就是我的意思 before using await 在此输入图像描述

但是在我将一个方法转换为a Task并使用await之后

在此输入图像描述

它仅在视觉工作室的输出区域中捕获...

顺便说一下:对我来说很奇怪,因为我是.Net4.5的新手,请原谅我,如果没有说明我需要的具体内容,那么我想知道的是

  • 当使用异步等待时,我如何使视觉工作室中断异常

Ste*_*ary 6

当调试器说"Exception未被用户代码处理"时,这意味着异常已经传播到框架.由于async Task方法将其异常放在其返回的上Task,因此异常不会传播到框架.像这样的例外是未被观察到的.

如果希望调试器在抛出异常时中断,则使用Debugger - > Exceptions - >选中CLr Exceptions的"Thrown"框.

如果要观察异常,则从更改TaskFactory.StartNewTask.Run并调用Wait返回的异常Task.这会将异常(包含在一个AggregateException)中传播Main到框架中.