用途:指导修复来自 VS Code 错误遥测面板的未处理错误。此类问题通常包含错误消息、堆栈跟踪、命中次数和受影响用户数。
主要原则:不要在崩溃点修复。在堆栈跟踪的某一行加 typeof 守卫、用 try/catch 吞掉错误或返回兜底值,只会掩盖真实问题,无效数据仍会流经系统并在别处引发故障。
使用方式:从下往上阅读堆栈每一帧,弄清传递的数据、期望的数据、数据来源(IPC 消息、扩展 API 调用、存储、用户输入等)以及数据是否可能在此处损坏,目标是找到无效数据的生产者而非崩溃的消费者。
若仅凭堆栈无法识别生产者(例如只显示 IPC 服务端处理程序,发送方在另一进程),应在消费端丰富错误消息,加入无效数据的类型、截断后的值和接收该数据的操作/命令,让信息经未处理错误管道自动进入遥测面板;不要静默吞掉错误,仍应抛出以保持可见。也可在抛出异常的底层校验函数中加入无效值。
若生产者可识别,直接修复生产者:在通过 IPC 发送、存储或传给 API 前校验或清理数据;确保序列化/反序列化保持类型正确,例如 URI 对象应序列化为 UriComponents 对象而非字符串。
指南:优先丰富错误消息而非添加 try/catch 守卫;对错误消息中用户可控的值做截断,避免 PII 并限制长度;不要以影响所有调用方的方式修改共享工具函数(如 URI.revive),应在具体调用点或生产者处修复;修改后运行相关单元测试;宣布完成前通过构建任务检查编译错误。
限制:资料未提供安装命令、平台支持、收费或价格信息。