Я записываю в журнал запись, когда в моем приложении nodejs возникает неперехваченное исключение.
process.on('uncaughtException', function (err) {
log.warn('Caught exception. Exiting. error: ' + err + ", stack: " + err.stack);
process.exit(1);
});
Но пару раз сегодня приложение вылетало без записи в журнале.
Оба раза приложение вылетало при обработке аналогичного запроса, поэтому в основном это должно быть из-за какой-то проблемы с приложением, а не из-за того, что кто-то его убил или какой-то другой внешний фактор.
Итак, есть ли способ, которым приложение может аварийно завершить работу без неперехваченного исключения?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Предлагаю также добавить unhandledRejection. Как упоминается в документации Node.js,
The
unhandledRejectionevent is emitted whenever a Promise is rejected and no error handler is attached to the promise within a turn of the event loop. When programming with Promises, exceptions are encapsulated as "rejected promises". Rejections can be caught and handled usingpromise.catch()and are propagated through a Promise chain. TheunhandledRejectionevent is useful for detecting and keeping track of promises that were rejected whose rejections have not yet been handled.
Вот пример того, как снова использовать его, предоставленный Node.js:
process.on('unhandledRejection', (reason, p) => {
console.info('Unhandled Rejection at:', p, 'reason:', reason);
// application specific logging, throwing an error, or other logic here
});
somePromise.then((res) => {
return reportToUser(JSON.pasre(res)); // note the typo (`pasre`)
}); // no `.catch()` or `.then()`
Это зависит от того, как другие события обрабатываются в файле server.js - такие события, как 'error', 'clientError' и т. д. Можете ли вы поделиться файлом, содержащим вышеуказанный бит кода.