Node js loop loop Обработка исключений - PullRequest
0 голосов
/ 05 января 2019

Это запрос о том, как обрабатывается исключение в узле js.

Допустим, есть узел + экспресс-веб-сервер. Как мы знаем, он обрабатывает несколько запросов в одном потоке - обслуживает один запрос, в то время как другой ожидает ввода-вывода.

Допустим, при обработке запроса произойдет исключение, которое не обрабатывается.

  1. В приведенном выше сценарии разве не будут отброшены отложенные запросы из-за сбоя?
  2. Если да, есть ли четко определенный механизм для преодоления этого?

1 Ответ

0 голосов
/ 06 января 2019
  1. Да
  2. Вы можете прослушивать такие ошибки на process и избегать сбоев:

    process.on ('unhandledRejection', (причина, обещание) => { console.log (причина + "-" + обещание); });

    process.on ('uncaughtException', (err) => { console.error («исключение uncaught:» + err + «\ n» + err.stack); });

    process.on ( 'ошибка', (ERR) => { console.log ('пойман в прослушивателе ошибок приложения:' + err); });

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

...