Как разрешить необработанные исключения в Node.js?

Опубликовано: 1 Августа, 2021

Ниже описаны два подхода к разрешению необработанных исключений в Node.js:

Подход 1. Использование блока try-catch: мы знаем, что Node.js - это платформа, построенная на среде выполнения JavaScript для простого создания быстрых и масштабируемых сетевых приложений. Являясь частью JavaScript, мы знаем, что наиболее распространенный способ обработки исключения - это использование блока try и catch.

Пример:




try {
// The synchronous code that
// we want to catch thrown
// errors on
var err = new Error( 'Hello' )
throw err
} catch (err) {
// Handle the error safely
console.log(err)
}

Примечание. Однако будьте осторожны, чтобы не использовать try-catch в асинхронном коде, поскольку асинхронно выданная ошибка не будет обнаружена.




try {
setTimeout( function () {
var err = new Error( 'Hello' )
throw err
}, 1000)
}
catch (err) {
// Example error won't be caught
// here... crashing our application
// hence the need for domains
}

Подход 2: Использование процесса: хорошая практика гласит, что вы должны использовать процесс для обработки исключения. Процесс - это глобальный объект, который предоставляет информацию о текущем процессе Node.js. Процесс - это функция-слушатель, которая всегда слушает события.
Несколько событий:

  • Отключить
  • Выход
  • Сообщение
  • Несколько разрешений
  • Необработанное исключение
  • Отклонение обработано
  • Неперехваченное исключение
  • Предупреждение

Самый действенный и действенный подход - использовать Process . Если в потоке кода возникает какое-либо неперехваченное или необработанное исключение, это исключение будет перехвачено в коде, показанном ниже:

Пример:




process.on( 'uncaughtException' , function (err) {
// Handle the error safely
console.log(err)
})

Приведенный выше код сможет обрабатывать любые необработанные исключения, возникающие в Node.js.