Захват исходного кода или номера строки необработанного исключения в node.js

У меня есть экспресс-приложение node.js, работающее в IIS. Я обнаружил, что приложение часто падает из-за какого-то неперехваченного исключения. Поэтому я использовал process.on('uncaughtException') для перезапуска службы в случае неперехваченного исключения. Я могу получить сообщение об ошибке «ECONNRESET», но не могу понять, где это произошло на самом деле. Есть ли способ зафиксировать источник ошибки или номер строки, вызвавшей исключение?


person NagaLakshmi    schedule 05.08.2015    source источник


Ответы (1)


Используйте событие process.on('uncaughtException'…, которое предоставляет вам объект Error, содержащий стек вызовов.

process.on('uncaughtException', function(err){
    console.error(err.stack);
    process.exit();
});
person laggingreflex    schedule 05.08.2015
comment
В моем случае объект err не имеет атрибута стека. У него есть только ошибка, код, системный вызов - person NagaLakshmi; 05.08.2015
comment
Это новое сообщение об ошибке { [Ошибка: чтение ECONNRESET] [стек]: [Getter/Setter], [аргументы]: не определено, [тип]: не определено, [сообщение]: 'read ECONNRESET', код: 'ECONNRESET', ошибка: 'ECONNRESET', системный вызов: 'чтение' } - person NagaLakshmi; 06.08.2015