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

VS Code调试Django时如何忽略非关键异常以命中断点?

解决VS Code调试Django时非关键异常导致断点无法命中的问题

我之前调试Django时也碰到过一模一样的情况——明明设好了断点,结果每次都被一些无关紧要的异常打断,断点根本没机会命中。其实这是VS Code的Python调试器默认的异常处理逻辑在作祟,它会对所有抛出的异常(哪怕是被代码捕获处理的非关键异常)都暂停执行,直接打断了我们的调试流程。

要解决这个问题,只需要修改你launch.json里的Django调试配置,添加几个关键参数就行:

步骤1:修改调试配置

打开你的launch.json文件(点击左侧调试面板的齿轮图标就能快速打开),找到名为Python: Django的配置节点,在里面添加以下配置项:

"justMyCode": true,
"exceptionHandling": {
    "raised": false,
    "uncaught": true
}

修改后的完整Python: Django配置应该是这样的:

{
    "name": "Python: Django",
    "type": "python",
    "request": "launch",
    "program": "${workspaceFolder}\\manage.py",
    "args": [
        "runserver",
        "--noreload",
        "--nothreading"
    ],
    "django": true,
    "justMyCode": true,
    "exceptionHandling": {
        "raised": false,
        "uncaught": true
    }
}

参数说明

  • justMyCode: 开启这个选项后,调试器会只关注你自己编写的代码,自动忽略第三方库(比如Django框架内部)抛出的异常——这些异常大多是非关键的,而且框架本身已经处理好了。
  • exceptionHandling.raised: 设置为false后,调试器不会在任何被捕获的异常抛出时暂停;而uncaught设为true,则确保真正未被代码处理的严重异常还是会触发暂停,不会影响我们排查真正的问题。

如果你只想忽略特定模块的异常(比如只忽略Django相关的),也可以换成这个配置:

"exceptionHandling": {
    "ignore": ["django.*"]
}

最后一步

保存修改后的launch.json,然后重启调试会话,你会发现那些烦人的非关键异常不会再打断调试了,设置的断点也能正常命中啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:50:44