VSCode怎么设置在遇到异常(Exception)时自动断点停留

夏晨小哥_3114

夏晨小哥_3114

2026-03-27

320人浏览

原创

vscode调试时exception触发自动断点需依赖调试器(如python的debugpy或node.js内置调试器)配置异常断点,而非仅修改vscode设置;python中需在launch.json设"justmycode": false并勾选“raised”或“uncaught”,node.js需通过debug启动、正确配置launch.json并针对异步/框架场景选择对应断点类型。

vscode怎么设置在遇到异常(exception)时自动断点停留

VSCode 调试时如何让 Exception 触发自动断点

VSCode 本身不会在抛出 Exception 时自动暂停,必须通过调试器(如 Python 的 ptvsd、debugpy,或 Node.js 的内置调试器)配合「异常断点」设置才能生效。关键不是改 VSCode 设置,而是激活调试会话中的异常捕获开关。

Python 项目中启用 Exception 自动断点的实操步骤

以官方推荐的 debugpy(VSCode Python 扩展默认调试后端)为例:

  • 确保已安装 Python 扩展,并在项目根目录下有 .vscode/launch.json
  • 在 launch.json 的配置项中添加 "justMyCode": false(否则只在你自己的代码里断,第三方库抛的异常会被跳过)
  • 启动调试后,打开左侧「运行和调试」面板 → 点击「断点」视图 → 勾选 Python Exception Breakpoint 下的 raised(抛出即停)或 uncaught(未被捕获才停)
  • 注意:勾选后无需重启调试会话,实时生效;但若之前已运行调试,需手动点击「重新启动」才能加载新断点规则

Node.js 中 throw 不触发断点?检查调试器模式

VSCode 内置 Node.js 调试器对异常断点支持较完善,但常见失效原因如下:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 用 node 命令直接运行而非通过 Debug: Start Debugging 启动 —— 此时调试器根本没挂载,Exception 断点完全无效
  • launch.json 中缺少 "stopOnEntry": false 或未设 "console": "integratedTerminal",导致异常信息被吞掉、断点不响应
  • 异步异常(如 Promise.reject())需额外勾选「Uncaught Exceptions」断点,仅勾「Caught Exceptions」不会停
  • 某些框架(如 Express)会全局捕获错误,导致异常变成「已捕获」状态,此时要勾 raised 而非 uncaught

为什么有时断点没反应?几个隐蔽但高频的问题

不是配置没写对,而是环境或时机不对:

  • launch.json 配置只对当前工作区生效,多根工作区(multi-root workspace)下可能被其他文件夹的配置覆盖
  • Python 中使用 try...except 捕获了异常,但没 raise 或 raise e,而是 raise Exception("xxx") —— 这会丢失原始堆栈,调试器无法关联到原始抛出处
  • Node.js 使用 domain 或 process.on("uncaughtException") 拦截了异常,调试器收不到通知
  • VSCode 更新后,旧版 Python 扩展可能仍用 ptvsd,而新版只支持 debugpy,导致异常断点功能降级或失效

异常断点依赖调试协议底层支持,不同语言、不同调试器版本的行为差异很大,别只盯着 UI 勾选,得确认后端真正在监听。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2135

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3242

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1096

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3719

7

Node.js后端开发与Express框架实践
Node.js后端开发与Express框架实践

本专题针对初中级 Node.js 开发者,系统讲解如何使用 Express 框架搭建高性能后端服务。内容包括路由设计、中间件开发、数据库集成、API 安全与异常处理,以及 RESTful API 的设计与优化。通过实际项目演示,帮助开发者快速掌握 Node.js 后端开发流程。

2026.02.10

761

17

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5807

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2488

6

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5807

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2488

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程