Метод Error.captureStackTrace()
— это мощный инструмент в Node.js для управления стектрейсами ошибок. Вот детальное объяснение его работы и применения:
const obj = {};
Error.captureStackTrace(obj);
console.log(obj.stack);
Полный синтаксис:
Error.captureStackTrace(targetObject[, constructorOpt])
targetObject
— объект, к которому будет прикреплен stack traceconstructorOpt
(опционально) — функция, вызовы которой будут исключены из стекаclass DatabaseError extends Error {
constructor(message) {
super(message);
Error.captureStackTrace(this, DatabaseError);
}
}
function criticalOperation() {
const errorContext = { operation: 'DB query' };
Error.captureStackTrace(errorContext);
// Если что-то пойдет не так:
// console.error('Context:', errorContext.stack);
}
function createError() {
const err = new Error();
Error.captureStackTrace(err, createError);
return err;
}
// В стеке не будет показан вызов createError()
stack
, оно будет перезаписаноError.captureStackTrace()
— это продвинутый инструмент для:
Используйте его осознанно, когда стандартного стека ошибок недостаточно.