面试题答案
一键面试在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
}