MST
星途 面试题库

面试题:Node.js 中错误对象的基本结构是什么

请阐述在Node.js里,错误对象通常包含哪些属性,这些属性各自代表什么含义,例如message属性。以一个常见的系统错误(如文件读取失败错误)为例进行说明。
39.1万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

在Node.js里,错误对象通常包含以下常见属性:

  • message:错误的简要描述,用于传达错误的具体信息。例如在文件读取失败错误中,可能是"ENOENT: no such file or directory, open 'nonexistentFile.txt'",明确指出找不到指定文件。
  • name:错误的类型名称,比如文件读取失败可能是"Error",更具体的系统错误类型像"ENOENT"对应的可能是"NotFoundError"等,帮助开发者快速定位错误类别。
  • stack:错误的堆栈跟踪信息,显示错误发生时的函数调用栈。它能帮助开发者了解错误发生的具体位置和执行路径,例如在文件读取失败时,堆栈跟踪可能显示调用fs.readFileSync的文件和行数等信息,方便排查错误来源。

以文件读取失败错误为例:

const fs = require('fs');
try {
  fs.readFileSync('nonexistentFile.txt', 'utf8');
} catch (err) {
  console.log(err.message); // "ENOENT: no such file or directory, open 'nonexistentFile.txt'"
  console.log(err.name); // 可能是 "Error" 或更具体的如 "NotFoundError"
  console.log(err.stack); 
  // 例如:
  // Error: ENOENT: no such file or directory, open 'nonexistentFile.txt'
  //     at Object.readFileSync (fs.js:404:3)
  //     at <anonymous>:3:3
}