【发布时间】:2013-01-10 08:25:24
【问题描述】:
在 node 中处理来自核心 node 代码的未处理期望的最佳方法是什么?我有一个后台进程,可以运行和抓取 Web 内容,并且可以长时间运行而不会出现问题,但是每隔一段时间就会发生意外异常,我似乎无法优雅地处理它。通常的罪魁祸首似乎是一些网络问题(失去连接),我正在做的 http 调用失败。我创建的所有函数都遵循 FUNCTION_NAME(error, returned_data) 的模式,但是在发生错误的情况下,我没有看到我在打印出来的调用堆栈中创建的任何函数,而是显示一些核心节点模块。我并不真正担心这些不常见的错误及其根本原因,这篇文章的目的只是试图找到一种处理这些异常的优雅方法。
我尝试在我的代码的顶层放置一个 try/catch,一切都在其中运行,但它似乎没有捕获这些异常。在节点中使用任何核心代码的所有低级函数中使用 try/catch 是一种好习惯吗?或者有什么方法可以全局捕获所有未处理的异常?
谢谢
克里斯
已更新以添加堆栈
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)
【问题讨论】:
-
你能复制一些这个未捕获的异常堆栈的堆栈吗?
-
我刚刚从最近的一个错误中将堆栈打印添加到主要问题中。这让我很困惑,因为它没有显示我的任何代码。
-
您使用的是哪个版本的节点?我问是因为行号与我的本地副本不匹配。
-
运行的代码是 0.6.8
标签: node.js exception-handling