如here和here所示,异步任务中发生的异常在技术上不是未处理的。
这在使用 MVC 时尤其令人讨厌。实际上,我们花了一些时间才弄清楚为什么没有捕获异常的情况越来越多,过去几周我们一直在逐渐将 Web API 调用引入我们的应用程序。
public async Task<ActionResult> Foo()
{
// ...
}
建议的解决方法是让 VS 中断所有异常,而不仅仅是未处理的异常。它的工作原理是令人讨厌的“副作用”,它确实会在所有异常情况下中断:)
是否有另一种不涉及中断所有异常的解决方法?它可以特定于 MVC,但不一定是(意味着它是否是适用于 MVC 的通用解决方案)。