节点处理来自核心节点代码的未处理的期望的最佳方式是什么?我有一个运行和抓取网页内容的后台进程,并且运行很长一段时间没有问题,但每隔一段时间都会发生意外的异常,我似乎无法妥善处理它。通常的罪魁祸首似乎是一些网络问题(失去连接),我所做的http调用失败。我创建的所有函数都遵循FUNCTION_NAME的模式(错误,returned_data),但是在发生错误的情况下,我看不到任何在打印出的调用堆栈中创建的函数,而是显示一些核心节点模块。我并不担心这些偶发错误及其根本原因,本文的目的只是试图找到一种处理这些例外的优雅方式。节点异常处理
我试着把一个try/catch放在我的代码的顶层,一切都在下面运行,但它似乎没有捕获到这些异常。在使用任何核心代码的所有较低级别的函数中使用try/catch是否是节点的良好做法?或者有什么方法可以全局捕获所有未处理的异常?
感谢
克里斯
更新,增加了STACK
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: connect Unknown system errno 10060
at errnoException (net.js:642:11)
at Object.afterConnect [as oncomplete] (net.js:633:18)
你可以复制一些这些未捕获的异常堆栈的堆栈吗? – seppo0010 2012-03-05 18:23:48
我刚刚添加了堆栈打印出最近的错误之一的主要问题。这让我感到困惑,因为它没有显示我的任何代码。 – 2012-03-06 13:39:31
您使用的是哪个版本的节点?我在问,因为行号与我的本地副本不匹配。 – seppo0010 2012-03-06 14:23:56