⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

JavaScript Error 与堆栈追踪

Error对象深入:Error.captureStackTrace(V8)、error.stack堆栈字符串、Error Cause链、AggregateError多个错误聚合、自定义Error类(class MyError extends Error)、source-map堆栈映射到源码 · 难度:入门 · +10XP

JavaScript Error 与堆栈追踪

当程序出错时,error.stack包含了从抛出位置到调用入口的完整调用链。理解堆栈追踪能大幅提升你的调试效率。

读取堆栈

try {
  throw new Error('出错了!');
} catch (err) {
  console.log(err.message); // '出错了!'
  console.log(err.stack);
  // Error: 出错了!
  //     at foo (script.js:5:9)
  //     at bar (script.js:10:3)
  //     at script.js:15:1
}

自定义Error类

class APIError extends Error {
  constructor(message, statusCode) {
    super(message);
    this.name = 'APIError';
    this.statusCode = statusCode;
    Error.captureStackTrace(this, APIError); // V8特有,从堆栈中排除构造函数
  }
}

动手练习

  1. 基础练习:故意写一个多层调用的错误,查看stack属性的完整调用链。
  2. 进阶应用:自定义Error类,包含额外的错误上下文信息。
  3. 项目实战:集成source-map让压缩后的代码错误能映射回源码位置。
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0