0

0

探索VS Code的异常捕获设置

P粉986688829

P粉986688829

发布时间:2025-11-30 17:28:02

|

824人浏览过

|

来源于php中文网

原创

答案:VS Code通过调试器配置异常捕获可提升调试效率,支持按异常类型设置中断行为。在launch.json中为Node.js设uncaught/caught策略,Python则用exceptionHandling控制raised和uncaught异常的breakMode,结合skipFiles和运行时调整,精准定位问题。

探索vs code的异常捕获设置

在使用 VS Code 进行开发时,调试是不可或缺的一环。异常捕获设置能帮助你快速定位代码中的错误,尤其是在运行和调试阶段自动中断于异常抛出处。合理配置这些设置,可以极大提升排查问题的效率。

理解异常捕获的基本机制

VS Code 本身不直接执行代码,而是通过调试器(如 Node.js 的调试器、Python 的 debugpy 等)与运行环境交互。异常捕获依赖于调试器的能力和配置。

当你启动调试会话时,可以在“运行和调试”侧边栏中看到“异常”区域,这里列出可配置的异常类型:

  • 始终中断:无论是否有 try/catch,遇到该异常就暂停
  • 仅在未捕获时中断:只在异常未被 catch 处理时暂停
  • 从不中断:忽略该异常,继续执行

常见异常类型包括“Caught Exceptions”(已捕获异常)和“Uncaught Exceptions”(未捕获异常)。

配置 Node.js 项目的异常行为

对于 JavaScript/Node.js 项目,可以通过 launch.json 设置异常策略:

{ "type": "node", "request": "launch", "name": "调试异常", "program": "${workspaceFolder}/app.js", "stopOnEntry": false, "console": "integratedTerminal", "skipFiles": [ "/**" ], "exceptions": { "uncaught": true, "caught": false } }

说明:

  • "uncaught": true 表示遇到未捕获异常时自动暂停
  • "caught": false 表示即使 try/catch 捕获了异常也不中断

若想连已捕获异常也中断,可将 caught 设为 true,便于查看异常源头。

唱鸭
唱鸭

音乐创作全流程的AI自动作曲工具,集 AI 辅助作词、AI 自动作曲、编曲、混音于一体

下载

Python 调试中的异常控制

使用 Python 扩展(如 ms-python.python)时,debugpy 支持类似的异常控制。launch.json 中的配置如下:

{ "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true, "exceptionHandling": { "raised": { "include": false, "breakMode": "never" }, "uncaught": { "include": true, "breakMode": "always" } } }

其中:

  • raised 指所有抛出的异常(包括被捕获的)
  • uncaught 指未被捕获的异常
  • breakMode 可设为 "never"、"always" 或 "unhandled"

将 raised 的 breakMode 设为 "always" 可在每次 raise 时中断,适合深度调试。

实际使用建议

异常捕获设置应根据调试场景灵活调整:

  • 排查未知崩溃时,开启“未捕获异常中断”快速定位错误位置
  • 分析异常处理逻辑是否正确,可临时启用“已捕获异常中断”
  • 跳过标准库或框架内部异常,可在 skipFiles 中添加路径模式
  • 调试异步代码时,注意 Promise 拒绝可能需要额外启用“蓝鸟异常”或类似选项

在 VS Code 的调试视图中,可随时点击“异常”旁边的齿轮图标,修改当前会话的异常策略,无需重启调试。

基本上就这些。掌握异常捕获设置,能让调试更精准高效。不同语言扩展行为略有差异,建议查阅对应调试器文档进一步了解细节。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

418

2023.08.07

json是什么
json是什么

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

535

2023.08.23

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

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

311

2023.10.13

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

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

77

2025.09.10

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

512

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

244

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

298

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5306

2023.08.17

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号