【发布时间】:2018-10-29 15:14:30
【问题描述】:
在包含多个 await 语句的调用堆栈中,当抛出异常时,调试器会在每个 await 语句处不断显示错误。我想知道是否有办法让调试器只显示引发异常的初始位置,而不是一直等待。
【问题讨论】:
-
我怀疑它在真正的异常点没有失败的原因是它实际上是一个未捕获的异常。如果您将
try/catch放在awaits 的根附近,那么您可能会获得更多/相关信息。 -
这没有多大意义。在异步代码中获取异常是非常痛苦的。您会考虑在抛出异常时强制调试器停止,以便解决问题。很好,问题已解决,但别忘了再次禁用它。
-
@HansPassant,不知道我是否理解,我们有抛出异常的代码,但是更高级别的代码可能会决定一个特定的异常是可以的,所以它通过多层异步方法最终被“处理” "(忽略)。在我们的例子中,我们尝试通过名称解析一个对象,但如果我们没有找到它,那可能没问题,这取决于它是在需要时发生,还是在可能需要之前完成。所以可能有来自该代码的异常,但也可能有来自其他地方的异常,只是在每次等待时停止并没有增加价值,我可以看到。
标签: c# visual-studio visual-studio-2017 visual-studio-debugging