You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022调试器异常后在栈内每个await处暂停的解决方法

Visual Studio 2022 调试时异常沿await调用栈重复暂停的配置方案

该问题是Visual Studio 2022托管代码调试默认开启「异步边界异常中断」特性导致的,按以下步骤调整配置即可实现需求:异常首次抛出时暂停一次,后续仅在显式rethrow位置再次中断,跳过调用栈传递过程中所有await节点的无效暂停。

配置操作步骤

关闭跨await边界异常中断开关

  • 顶部菜单栏依次打开「工具」→「选项」,左侧导航栏展开「调试」→「常规」分类。
  • 在右侧配置列表中,找到在异常跨越await边界传递时中断(仅托管代码)选项,取消前面的勾选。
  • 同页面确认勾选「启用仅我的代码」选项,该配置会过滤系统框架、第三方非用户代码中的异常传递节点,避免无效暂停。

调整异常中断规则

  • 调试状态下按快捷键Ctrl+Alt+E调出异常设置面板,也可以通过顶部菜单「调试」→「窗口」→「异常设置」打开。
  • 点击异常设置面板顶部工具栏的「将所有异常重置为默认设置」按钮,恢复默认异常触发逻辑:默认规则下调试器仅会在异常首次抛出的位置中断一次,不会在异常沿调用栈向上传递的每个节点重复暂停。
  • 如果你自定义过特定异常的捕获规则,只需要保留对应异常「抛出」列的勾选,不要开启「用户处理异常时中断」的相关选项,该选项会触发异常被每个await节点的隐式处理逻辑拦截时反复暂停。

配置完成后重启Visual Studio即可生效,后续调试时异常首次抛出暂停后,点击一次继续就会直接跳转到异常最终未处理的位置,或者代码中显式rethrow的位置,不会再在调用栈的每个await点逐一暂停。

临时应急技巧:如果没改配置遇到连续暂停的情况,不需要终止进程重启,连续按5次F5(继续调试快捷键)的速度远快于鼠标点击,不过根治问题还是需要修改上述配置。

内容的提问来源于stack exchange,提问作者clemens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:27:17