1 JavaScript 语言提供的 try / catch
语句处理的。
// 抛出一个 ReferenceError,因为 z 为 undefined
try {
const m = 1;
const n = m + z;
} catch (err) {
// 在这里处理错误。
}
2 大多数的异步方法都接受一个 callback
函数,该函数会接受一个 Error
对象传入作为第一个参数。 如果第一个参数不是 null
而是一个 Error
实例,则说明发生了错误,应该进行处理。
const fs = require('fs');
fs.readFile('一个不存在的文件', (err, data) => {
if (err) {
console.error('读取文件出错!', err);
return;
}
// 否则处理数据
});
3 当一个异步方法被一个 EventEmitter
对象调用时,错误会被分发到对象的 'error'
事件上。对于所有的 EventEmitter
对象,如果没有提供一个 'error'
事件句柄,则错误会被抛出,并造成 Node.js 进程报告一个未处理的异常且随即崩溃,除非: 适当地使用