Node.js: возможно ли перехватить «TypeError» и сохранить работоспособность сервера? - PullRequest
4 голосов
/ 08 июня 2011

Иногда в моем коде появляется опечатка, которая приводит к сбою моего сервера. Мне интересно, есть ли что-то, что я могу добавить, чтобы после этого не происходило сбоев. Вот подробности аварии:

2011-06-08T11:23:09+00:00 app[worker.1]: /app/lib/imap.js:1019
2011-06-08T11:23:09+00:00 app[worker.1]:         type: cur[0].toLowerCase(), subtype: cur[1].toLowerCase(),
2011-06-08T11:23:09+00:00 app[worker.1]:                                                     ^
2011-06-08T11:23:09+00:00 app[worker.1]: TypeError: Object FILENAME,Oportunidad especial de has no method 'toLowerCase'
2011-06-08T11:23:09+00:00 app[worker.1]:     at parseBodyStructure (/app/lib/imap.js:1019:53)
2011-06-08T11:23:09+00:00 app[worker.1]:     at parseBodyStructure (/app/lib/imap.js:1090:23)
2011-06-08T11:23:09+00:00 app[worker.1]:     at parseBodyStructure (/app/lib/imap.js:1000:18)
2011-06-08T11:23:09+00:00 app[worker.1]:     at parseBodyStructure (/app/lib/imap.js:994:13)
2011-06-08T11:23:09+00:00 app[worker.1]:     at parseFetch (/app/lib/imap.js:974:29)
2011-06-08T11:23:09+00:00 app[worker.1]:     at CleartextStream.<anonymous> (/app/lib/imap.js:180:11)
2011-06-08T11:23:09+00:00 app[worker.1]:     at CleartextStream.emit (events.js:64:17)
2011-06-08T11:23:09+00:00 app[worker.1]:     at CleartextStream._push (tls.js:285:31)
2011-06-08T11:23:09+00:00 app[worker.1]:     at SecurePair._cycle (tls.js:565:20)
2011-06-08T11:23:09+00:00 app[worker.1]:     at EncryptedStream.write (tls.js:97:13)
2011-06-08T11:23:09+00:00 heroku[worker.1]: Process exited
2011-06-08T11:23:09+00:00 heroku[worker.1]: State changed from up to crashed

Спасибо

1 Ответ

10 голосов
/ 08 июня 2011

Обработка события uncaughtException в процессе.

process.on('uncaughtException', function (err) {
  console.log('Oh shit recover somehow");
});

Предупреждение: Это перехватит все исключения. Если вы не удосужились обращаться с ними должным образом, вы можете очень сильно испортить состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...