2011-06-08 75 views
3

Somtimes我在我的代码崩溃我的服务器typerror。我想知道是否有什么我可以添加,所以它不会在发生后崩溃。这里有更多的细节崩溃:Node.js:是否可以捕获“TypeError”并保持服务器运行?

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 

感谢

+0

你有没有尝试修复错误或消毒你的输入? – Raynos 2011-06-08 12:03:40

+3

我可以修复这个错误,但我可能不会修复所有的错误。我想受到保护。 – donald 2011-06-08 12:17:06

回答

9

在处理过程中uncaughtException事件。

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

警告:这将捕获所有异常。如果你不打算妥善处理它们,你可以非常糟糕地腐败国家。

+0

这是否会引起我的例子中的问题并使服务器继续运行? – donald 2011-06-08 12:34:17

+0

@唐纳是的。但它没有清理任何连接。对于任何客户端的响应导致异常可能会在稍后挂起或崩溃。服务器不会崩溃,虽然 – Raynos 2011-06-08 12:35:50

+0

哇,谢谢你@Raynos。 – 2015-03-08 19:34:17

相关问题