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

如何配置VSCode的PowerShell扩展默认显示脚本终止错误堆栈跟踪

让VSCode PowerShell集成控制台自动显示完整脚本堆栈跟踪

VSCode的PowerShell扩展集成控制台默认仅显示终止错误的基础信息(错误消息+起源行),对调试帮助有限。要实现自动输出完整脚本堆栈、无需重复添加异常处理代码,可通过以下几种方式配置:

方法1:修改VSCode PowerShell扩展设置

直接调整扩展的错误输出策略,一步到位:

  1. 按Ctrl+,打开VSCode设置界面
  2. 搜索powershell.integratedConsole.errorOutputPolicy
  3. 将默认值Simple改为Full

修改后,集成控制台遇到终止错误时会自动输出包含完整脚本堆栈的信息,效果接近你期望的格式。

方法2:通过PowerShell配置文件添加全局错误捕获

如果扩展设置的输出仍不符合需求,可通过PowerShell用户配置文件添加全局错误捕获逻辑,每次打开集成控制台自动生效:

  1. 在PowerShell中执行notepad $PROFILE打开用户配置文件(若文件不存在,先执行New-Item -Path $PROFILE -ItemType File -Force创建)
  2. 添加以下代码:
# 全局捕获终止错误并打印脚本堆栈
trap {
    $_ | Out-Host
    Write-Host "`n$($_.ScriptStackTrace)" -ForegroundColor Red
    continue  # 若需要终止脚本执行,可替换为break
}
  1. 保存配置文件后,重启VSCode的PowerShell集成控制台,所有脚本的终止错误都会自动显示堆栈信息。

方法3:优化$ErrorView的简洁替代方案

不想使用DetailedView的冗余输出?可尝试设置$ErrorView = 'ConciseView',它比默认视图提供更多信息,但比DetailedView更简洁,不过仍可能包含少量冗余内容,可按需选择。

测试效果验证

用你提供的测试脚本:

Function Test-Me { 
    Test-You
}

Function Test-You {
    throw 'foo error'
}

Test-Me

配置后控制台会输出你期望的格式:

Exception: C:\Test.ps1:6:2
Line |
   6 |      throw 'foo error'
     |      ~~~~~~~~~~~~~~~~~
     | foo error

at Test-You, C:\Test.ps1: line 6
at Test-Me, C:\Test.ps1: line 2
at <ScriptBlock>, C:\Test.ps1: line 10
at <ScriptBlock>, <No file>: line 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:52:42