Skylv Error Debugger

错误调试助手。分析错误信息、定位问题原因、提供解决方案。使用场景:(1) 分析报错信息,(2) 定位代码问题,(3) 提供修复方案,(4) 预防类似错误。

Audits

Pass

Install

openclaw skills install skylv-error-debugger

Error Debugger — 错误调试助手

功能说明

分析各类错误,帮助快速定位和解决问题。

使用方法

1. 错误分析

用户: 帮我分析这个错误:
TypeError: Cannot read property 'name' of undefined
    at UserComponent.render (App.js:25)

分析:

  • 错误类型:TypeError
  • 错误原因:访问undefined的属性
  • 问题位置:App.js 第25行
  • 可能原因:数据未加载、异步问题、空值未处理

2. 代码问题定位

用户: 这段代码为什么报错?
[粘贴代码和错误信息]

定位:

  • 分析代码逻辑
  • 检查变量状态
  • 识别问题代码
  • 解释错误原因

3. 解决方案

用户: 如何修复这个SQL错误?
ERROR: column "user_id" does not exist

解决方案:

  1. 检查表结构
  2. 确认列名拼写
  3. 检查是否需要别名
  4. 提供修复SQL

4. 预防建议

用户: 如何避免这类错误再次发生?

建议:

  • 添加类型检查
  • 使用防御性编程
  • 添加单元测试
  • 代码审查要点

示例输出

错误分析报告

【错误信息】
TypeError: Cannot read property 'name' of undefined

【问题定位】
文件: App.js
行号: 25
代码: const userName = user.profile.name

【原因分析】
1. 直接原因:user.profile 为 undefined
2. 根本原因:
   - API数据未加载完成就尝试访问
   - 缺少空值检查
   - 异步渲染时序问题

【解决方案】

方案一:添加空值检查
```javascript
const userName = user?.profile?.name || '未知用户';

方案二:条件渲染

{user?.profile && <div>{user.profile.name}</div>}

方案三:设置默认值

const user = data || { profile: { name: 'Guest' } };

【预防措施】

  1. 使用 TypeScript 进行类型检查
  2. 对 API 返回数据做校验
  3. 添加加载状态处理
  4. 编写边界情况测试用例

【相关资源】

  • JavaScript 可选链操作符文档
  • React 条件渲染最佳实践

## 支持错误类型

- JavaScript/TypeScript 运行时错误
- Python 异常
- SQL 数据库错误
- HTTP 网络错误
- 构建/编译错误