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

如何让Visual Studio在已吞掉异常时不再中断调试?

解决Visual Studio调试时空catch块触发中断的问题
  • 打开异常设置面板:使用快捷键 Ctrl+Alt+E,或者通过顶部菜单依次点击 调试 > Windows > Exception Settings 打开。
  • 定位目标异常类型:在面板的 Common Language Runtime Exceptions 分类下,找到你要吞掉的异常(比如通用的 System.Exception,或者具体的异常类如 System.IO.IOException)。
  • 修改中断规则:取消该异常类型下的 Thrown 勾选框,保留 User-unhandled 勾选。这样设置后,当异常被你的空catch块捕获时,调试器不会中断;只有当异常未被任何代码处理时,才会触发中断。

如果需要更精准的控制(比如只针对某一段代码里的异常不中断),可以给包含try/catch逻辑的方法添加 [System.Diagnostics.DebuggerNonUserCode] 属性。这个属性会告诉调试器,该方法内的代码不属于用户代码,调试时不会在其中抛出的异常处中断,即使异常设置里勾选了Thrown。示例代码:

[System.Diagnostics.DebuggerNonUserCode]
private void SwallowExceptionMethod()
{
    try
    {
        // 可能抛出异常的代码
    }
    catch
    {
        // 空catch块吞掉异常
    }
}

注意:使用DebuggerNonUserCode会让调试器跳过整个方法的单步调试,如果你还需要调试该方法内的其他代码,优先用异常设置面板的配置更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:10:17