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

如何配置VS Code在Rails应用任意异常处中断(使用ruby-debug-ide与debase)

Rails配置异常自动触发VS Code断点操作步骤

你已经装完ruby-debug-ide和debase能正常启动调试的话,只需要两步配置就能实现异常抛出自动断:

开启调试面板的异常捕获开关

  • 打开VS Code左侧「运行和调试」面板(快捷键Ctrl+Shift+D/Cmd+Shift+D)
  • 展开面板里的「断点」分组,直接勾选两个选项:
    • 未捕获异常:默认一般已勾选,异常没有被任何rescue块接住时自动断
    • 已捕获异常:勾选后哪怕异常被业务代码、框架层的rescue兜住,抛出瞬间也会触发断点
  • 这一步改完即时生效,下次启动调试就会按规则拦截异常。

(可选)关闭默认异常过滤,拦截所有类型异常

调试器默认会过滤掉Ruby、Rails内置的部分非致命异常(比如路由内部的路由匹配异常、部分参数解析异常),如果发现有异常没被拦截,改下调试配置即可:

  1. 打开项目根目录下的.vscode/launch.json文件,找到你平时用的Rails启动配置项
  2. 在配置对象里添加两个参数,关闭内置过滤:
{
  "name": "Rails server",
  "type": "Ruby",
  "request": "launch",
  "program": "${workspaceRoot}/bin/rails",
  "args": ["server", "-b", "0.0.0.0"],
  "useBundler": true,
  // 新增以下两行
  "catchAllExceptions": true,
  "exceptionFilter": []
}
  1. 保存文件后重启调试会话,之后所有异常无论类型、是否被捕获,抛出时都会自动触发断点。

小提示

如果开启全量捕获后断点太频繁(比如业务里有主动抛异常再捕获的逻辑,比如权限校验、流控逻辑),不用关全局开关,直接在「断点」面板的异常排除列表里,把不想拦截的异常类名加进去就行,不会影响其他异常的拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:33:27